<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>EquTemper: ETSheetView.cc Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="$relpath<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="$relpath<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>/search.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">EquTemper&#160;<span id="projectnumber">1.01</span></div>
   <div id="projectbrief">An equation editor.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.4 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
      <li id="searchli">
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('_e_t_sheet_view_8cc.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">ETSheetView.cc</div>  </div>
</div>
<div class="contents">
<a href="_e_t_sheet_view_8cc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* ========================================================================= */</span>
<a name="l00002"></a>00002 <span class="comment">/* ------------------------------------------------------------------------- */</span><span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">/*!</span>
<a name="l00004"></a>00004 <span class="comment">  \file         ETSheetView.cc</span>
<a name="l00005"></a>00005 <span class="comment">  \date         september 2011</span>
<a name="l00006"></a>00006 <span class="comment">  \author       TNick</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">  \brief        Contains the implementation for ETSheetView class</span>
<a name="l00009"></a>00009 <span class="comment"></span>
<a name="l00010"></a>00010 <span class="comment"></span>
<a name="l00011"></a>00011 <span class="comment">  Copyright (c) 2011, Nicu Tofan</span>
<a name="l00012"></a>00012 <span class="comment"> All rights reserved.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment"> Redistribution and use in source and binary forms, with or without</span>
<a name="l00015"></a>00015 <span class="comment"> modification, are permitted provided that the following conditions are met:</span>
<a name="l00016"></a>00016 <span class="comment"> * Redistributions of source code must retain the above copyright</span>
<a name="l00017"></a>00017 <span class="comment">   notice, this list of conditions and the following disclaimer.</span>
<a name="l00018"></a>00018 <span class="comment"> * Redistributions in binary form must reproduce the above copyright</span>
<a name="l00019"></a>00019 <span class="comment">   notice, this list of conditions and the following disclaimer in the</span>
<a name="l00020"></a>00020 <span class="comment">   documentation and/or other materials provided with the distribution.</span>
<a name="l00021"></a>00021 <span class="comment"> * Neither the name of the copyright holder nor the</span>
<a name="l00022"></a>00022 <span class="comment">   names of its contributors may be used to endorse or promote products</span>
<a name="l00023"></a>00023 <span class="comment">   derived from this software without specific prior written permission.</span>
<a name="l00024"></a>00024 <span class="comment"></span>
<a name="l00025"></a>00025 <span class="comment"> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS &quot;AS IS&quot; AND</span>
<a name="l00026"></a>00026 <span class="comment"> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED</span>
<a name="l00027"></a>00027 <span class="comment"> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE</span>
<a name="l00028"></a>00028 <span class="comment"> DISCLAIMED. IN NO EVENT SHALL NICU TOFAN BE LIABLE FOR ANY</span>
<a name="l00029"></a>00029 <span class="comment"> DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span>
<a name="l00030"></a>00030 <span class="comment"> (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span>
<a name="l00031"></a>00031 <span class="comment"> LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND</span>
<a name="l00032"></a>00032 <span class="comment"> ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span>
<a name="l00033"></a>00033 <span class="comment"> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS</span>
<a name="l00034"></a>00034 <span class="comment"> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>
<a name="l00035"></a>00035 <span class="comment"></span>
<a name="l00036"></a>00036 <span class="comment">*/</span>
<a name="l00037"></a>00037 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00038"></a>00038 <span class="comment">/* ========================================================================= */</span>
<a name="l00039"></a>00039 <span class="comment">//</span>
<a name="l00040"></a>00040 <span class="comment">//</span>
<a name="l00041"></a>00041 <span class="comment">//</span>
<a name="l00042"></a>00042 <span class="comment">//</span>
<a name="l00043"></a>00043 <span class="comment">/*  INCLUDES    ------------------------------------------------------------ */</span>
<a name="l00044"></a>00044 
<a name="l00045"></a>00045 <span class="preprocessor">#include    &lt;<a class="code" href="main_8h.html" title="Contains global definitions for application.">main.h</a>&gt;</span>
<a name="l00046"></a>00046 
<a name="l00047"></a>00047 <span class="preprocessor">#include    &lt;math.h&gt;</span>
<a name="l00048"></a>00048 
<a name="l00049"></a>00049 <span class="preprocessor">#include    &lt;QGLWidget&gt;</span>
<a name="l00050"></a>00050 <span class="preprocessor">#include    &lt;QSplitter&gt;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include    &lt;QMessageBox&gt;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include    &lt;QObjectList&gt;</span>
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="preprocessor">#include    &lt;<a class="code" href="_e_t_i___cplx_txt_8h.html" title="Contains the definition for ETI_CplxTxt class.">sheet/ETI_CplxTxt.h</a>&gt;</span>
<a name="l00055"></a>00055 <span class="preprocessor">#include    &lt;<a class="code" href="_e_t_sub_item_8h.html" title="Contains the definition for ETSubItem class.">sheet/ETSubItem.h</a>&gt;</span>
<a name="l00056"></a>00056 <span class="preprocessor">#include    &lt;<a class="code" href="_e_t_vp_command_8h.html" title="Contains the definition for ETVpCommand class.">sheet/ETVpCommand.h</a>&gt;</span>
<a name="l00057"></a>00057 <span class="preprocessor">#include    &lt;<a class="code" href="_e_t_sheet_8h.html" title="Contains the definition for ETSheet class.">sheet/ETSheet.h</a>&gt;</span>
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="preprocessor">#include    &lt;<a class="code" href="_e_t_vp_cmd___edit_sub_i_8h.html" title="Contains the definition for ETVpCmd_EditSubI class.">sheet/vp_cmd/ETVpCmd_EditSubI.h</a>&gt;</span>
<a name="l00060"></a>00060 <span class="preprocessor">#include    &lt;<a class="code" href="mainwindow_8h.html" title="Contains the definition for MainWindow class.">gui/mainwindow.h</a>&gt;</span>
<a name="l00061"></a>00061 <span class="preprocessor">#include    &lt;<a class="code" href="mdichild_8h.html" title="Contains the definition for MdiChild class.">gui/mdichild.h</a>&gt;</span>
<a name="l00062"></a>00062 
<a name="l00063"></a>00063 <span class="preprocessor">#include    &quot;<a class="code" href="_e_t_sheet_view_8h.html" title="Contains the definition for ETSheetView class.">ETSheetView.h</a>&quot;</span>
<a name="l00064"></a>00064 
<a name="l00065"></a>00065 <span class="comment">/*  INCLUDES    ============================================================ */</span>
<a name="l00066"></a>00066 <span class="comment">//</span>
<a name="l00067"></a>00067 <span class="comment">//</span>
<a name="l00068"></a>00068 <span class="comment">//</span>
<a name="l00069"></a>00069 <span class="comment">//</span>
<a name="l00070"></a>00070 <span class="comment">/*  CLASS    --------------------------------------------------------------- */</span>
<a name="l00071"></a>00071 <a class="code" href="ddhc__main_8h.html#abeddf5a2c22a7727d1c96c148d05d9cf">DDHC_CONTENT</a>(<a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a>)
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00074"></a><a class="code" href="class_e_t_sheet_view.html#aee8f4f12fed7a00bc924e54a5fe7527a">00074</a> void        <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a>::init       ( <span class="keywordtype">void</span> )
<a name="l00075"></a>00075 {
<a name="l00076"></a>00076     <span class="comment">//setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);</span>
<a name="l00077"></a>00077     setInteractive(<span class="keyword">true</span>);
<a name="l00078"></a>00078     <span class="comment">//setForegroundBrush(QBrush(Qt::yellow));</span>
<a name="l00079"></a>00079     <span class="comment">//setBackgroundBrush(QBrush(Qt::darkCyan));</span>
<a name="l00080"></a>00080     setDragMode(QGraphicsView::RubberBandDrag); <span class="comment">/* QGraphicsView::ScrollHandDrag */</span>
<a name="l00081"></a>00081     setCacheMode(QGraphicsView::CacheBackground);
<a name="l00082"></a>00082     setViewport(<span class="keyword">new</span> QGLWidget);
<a name="l00083"></a>00083     setAlignment(Qt::AlignLeft | Qt::AlignTop);
<a name="l00084"></a>00084     setMouseTracking(<span class="keyword">true</span>);
<a name="l00085"></a>00085     centerOn(0, 0);
<a name="l00086"></a>00086 
<a name="l00087"></a>00087     <span class="comment">/* no items being edited right now */</span>
<a name="l00088"></a>00088     temp_editor = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00089"></a>00089     crt_sub_itm = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00090"></a>00090     crt_itm = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00091"></a>00091     running_command = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00092"></a>00092     rot_ang_to_s = 0;
<a name="l00093"></a>00093     scale_to_s = 1;
<a name="l00094"></a>00094     trans_x = 0.0;
<a name="l00095"></a>00095     trans_y = 0.0;
<a name="l00096"></a>00096 
<a name="l00097"></a>00097     <span class="comment">//setViewportUpdateMode(QGraphicsView::FullViewportUpdate);</span>
<a name="l00098"></a>00098     <a class="code" href="ddhc__main_8h.html#a5450dfe3c644f059533fb6b0a704d9bf">DDHC_CONSTRUCT</a>;
<a name="l00099"></a>00099     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(temp_editor);
<a name="l00100"></a>00100     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(crt_itm);
<a name="l00101"></a>00101     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(crt_sub_itm);
<a name="l00102"></a>00102     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(running_command);
<a name="l00103"></a>00103     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(b_sel_left);
<a name="l00104"></a>00104     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(rot_ang_to_s);
<a name="l00105"></a>00105     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(scale_to_s);
<a name="l00106"></a>00106     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(trans_x);
<a name="l00107"></a>00107     <a class="code" href="ddhc__main_8h.html#abe1f2d96d3d620116d512432989392b3">DDHC_VARIABLE</a>(trans_y);
<a name="l00108"></a>00108 
<a name="l00109"></a>00109 <span class="comment">//    DDHC_NODE(&amp;cl_inst);</span>
<a name="l00110"></a>00110 
<a name="l00111"></a>00111 }
<a name="l00112"></a>00112 <span class="comment">/* ========================================================================= */</span>
<a name="l00113"></a>00113 
<a name="l00114"></a>00114 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00115"></a><a class="code" href="class_e_t_sheet_view.html#af4f9608ab11edd65c3b1a1f532dbcf4f">00115</a> <a class="code" href="class_e_t_sheet_view.html#af4f9608ab11edd65c3b1a1f532dbcf4f" title="constructor;">ETSheetView::ETSheetView</a>    (<a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * the_scene, QWidget *parent)
<a name="l00116"></a>00116     : QGraphicsView (parent)
<a name="l00117"></a>00117 {
<a name="l00118"></a>00118     <a class="code" href="class_e_t_sheet_view.html#aee8f4f12fed7a00bc924e54a5fe7527a" title="used by various flavours of constructors">init</a>();
<a name="l00119"></a>00119     <a class="code" href="class_e_t_sheet_view.html#a1299bac40f077bdb2a070d24527f6b4a">setScene</a>(the_scene);
<a name="l00120"></a>00120 }
<a name="l00121"></a>00121 <span class="comment">/* ========================================================================= */</span>
<a name="l00122"></a>00122 
<a name="l00123"></a>00123 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00124"></a><a class="code" href="class_e_t_sheet_view.html#add77f46ae7d28f224aba2bfd2040b0f6">00124</a> <a class="code" href="class_e_t_sheet_view.html#add77f46ae7d28f224aba2bfd2040b0f6" title="destructor">ETSheetView::~ETSheetView</a>   ( <span class="keywordtype">void</span> )
<a name="l00125"></a>00125 {
<a name="l00126"></a>00126     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * <span class="keyword">&gt;</span>(scene());
<a name="l00127"></a>00127     <span class="keywordflow">if</span> (sht != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00128"></a>00128     {
<a name="l00129"></a>00129         <span class="keywordflow">if</span> (sht-&gt;<a class="code" href="class_e_t_sheet.html#a7f91174cc0e5fcc88ab8b9373dfdc370" title="tell which is current viewport (should never be null)">currentVP</a>() == <span class="keyword">this</span>)
<a name="l00130"></a>00130         {
<a name="l00131"></a>00131             sht-&gt;<a class="code" href="class_e_t_sheet.html#a268f805202701c67e7334201965bf4c3" title="tell which is current viewport (should never be null)">setCurrentVp</a>(<a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);
<a name="l00132"></a>00132         }
<a name="l00133"></a>00133     }
<a name="l00134"></a>00134     <a class="code" href="ddhc__main_8h.html#a83b4d50889e49e105c89d71acff6f975">DDHC_DESTRUCT</a>
<a name="l00135"></a>00135 }
<a name="l00136"></a>00136 <span class="comment">/* ========================================================================= */</span>
<a name="l00137"></a>00137 
<a name="l00138"></a>00138 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00139"></a><a class="code" href="class_e_t_sheet_view.html#ae24286dc86a869a5817b128523550df3">00139</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ae24286dc86a869a5817b128523550df3" title="set current editor">ETSheetView::setEditor</a>              ( QWidget * new_editor )
<a name="l00140"></a>00140 {
<a name="l00141"></a>00141     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00142"></a>00142     {
<a name="l00143"></a>00143         <a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a>-&gt;close();
<a name="l00144"></a>00144         <a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a>-&gt;deleteLater();
<a name="l00145"></a>00145     }
<a name="l00146"></a>00146     <a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a> = new_editor;
<a name="l00147"></a>00147 }
<a name="l00148"></a>00148 <span class="comment">/* ========================================================================= */</span>
<a name="l00149"></a>00149 
<a name="l00150"></a>00150 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00151"></a><a class="code" href="class_e_t_sheet_view.html#a2528546c81ecd3e77b9dd5105b5750ff">00151</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a2528546c81ecd3e77b9dd5105b5750ff" title="close current editor, if any; the text is not validated">ETSheetView::closeEditor</a>            ( <span class="keywordtype">void</span> )
<a name="l00152"></a>00152 {
<a name="l00153"></a>00153     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00154"></a>00154     {
<a name="l00155"></a>00155         <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00156"></a>00156         {<span class="comment"></span>
<a name="l00157"></a>00157 <span class="comment">            /// @todo call save function</span>
<a name="l00158"></a>00158 <span class="comment"></span>        }
<a name="l00159"></a>00159         <a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a>-&gt;close();
<a name="l00160"></a>00160         <a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a>-&gt;deleteLater();
<a name="l00161"></a>00161         <a class="code" href="class_e_t_sheet_view.html#a409d391051af68ef61ea75b882301be7" title="either a pointer to current editor or NULL if none is visible">temp_editor</a> = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00162"></a>00162     }
<a name="l00163"></a>00163 }
<a name="l00164"></a>00164 <span class="comment">/* ========================================================================= */</span>
<a name="l00165"></a>00165 
<a name="l00166"></a>00166 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00167"></a><a class="code" href="class_e_t_sheet_view.html#ae2acde853ced4e5b49913cc048fa5abc">00167</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ae2acde853ced4e5b49913cc048fa5abc" title="inform the view that a new current item was decided">ETSheetView::setCurrentSubI</a>         (
<a name="l00168"></a>00168         <a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * new_i, <a class="code" href="class_e_t_sub_item.html" title="class representing the common interface exposed by all sub-items of a ETI_CplxTxt">ETSubItem</a> * new_si)
<a name="l00169"></a>00169 {
<a name="l00170"></a>00170     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00171"></a>00171     {
<a name="l00172"></a>00172         <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#adc77ab1f44d683c75355b5cf4c519b53" title="visually deselected; this is not the same thing as the current si">deselect</a>(<a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <span class="keyword">false</span>);
<a name="l00173"></a>00173     }
<a name="l00174"></a>00174 
<a name="l00175"></a>00175     <span class="keywordflow">if</span> (new_si == <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00176"></a>00176     {
<a name="l00177"></a>00177         <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00178"></a>00178         <a class="code" href="class_e_t_sheet_view.html#a11491d5408d86f8277e00faf7929e401" title="cached parent of the current sub-item (crt_sub_itm)">crt_itm</a> = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00179"></a>00179     }
<a name="l00180"></a>00180     <span class="keywordflow">else</span>
<a name="l00181"></a>00181     {
<a name="l00182"></a>00182         <span class="keywordflow">if</span> (new_i == <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00183"></a>00183             new_i = new_si-&gt;<a class="code" href="class_e_t_sub_item.html#a73078f093b83442fb1729f6f35bee29f" title="get the ETI_CplxTxt father (complex text)">fatherCplx</a>();
<a name="l00184"></a>00184 
<a name="l00185"></a>00185         <a class="code" href="class_e_t_sheet_view.html#a11491d5408d86f8277e00faf7929e401" title="cached parent of the current sub-item (crt_sub_itm)">crt_itm</a> = new_i;
<a name="l00186"></a>00186         <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> = new_si;
<a name="l00187"></a>00187     }
<a name="l00188"></a>00188 }
<a name="l00189"></a>00189 <span class="comment">/* ========================================================================= */</span>
<a name="l00190"></a>00190 
<a name="l00191"></a>00191 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00192"></a><a class="code" href="class_e_t_sheet_view.html#ab25d1eedd8c99747c31e8a63b461b9b6">00192</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ab25d1eedd8c99747c31e8a63b461b9b6" title="perform all actions required to make this item current in this view">ETSheetView::makeCurrentSubI</a>        (
<a name="l00193"></a>00193         <a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * new_i, <a class="code" href="class_e_t_sub_item.html" title="class representing the common interface exposed by all sub-items of a ETI_CplxTxt">ETSubItem</a> * new_si)
<a name="l00194"></a>00194 {
<a name="l00195"></a>00195     <span class="keywordflow">if</span> (new_i == <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00196"></a>00196         new_i = new_si-&gt;<a class="code" href="class_e_t_sub_item.html#a73078f093b83442fb1729f6f35bee29f" title="get the ETI_CplxTxt father (complex text)">fatherCplx</a>();
<a name="l00197"></a>00197 
<a name="l00198"></a>00198     <a class="code" href="class_e_t_sheet_view.html#ae2acde853ced4e5b49913cc048fa5abc" title="inform the view that a new current item was decided">setCurrentSubI</a>(new_i, new_si);
<a name="l00199"></a>00199 
<a name="l00200"></a>00200     new_i-&gt;update();
<a name="l00201"></a>00201 }
<a name="l00202"></a>00202 <span class="comment">/* ========================================================================= */</span>
<a name="l00203"></a>00203 
<a name="l00204"></a>00204 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00205"></a><a class="code" href="class_e_t_sheet_view.html#aae4b82e3f9a787dcd60f6bd93928efe3">00205</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#aae4b82e3f9a787dcd60f6bd93928efe3" title="make the sub-item provided in the argument properly visible">ETSheetView::makeSubIVisible</a>        (<a class="code" href="class_e_t_sub_item.html" title="class representing the common interface exposed by all sub-items of a ETI_CplxTxt">ETSubItem</a> * trg_si)
<a name="l00206"></a>00206 {
<a name="l00207"></a>00207     Q_UNUSED(trg_si);<span class="comment"></span>
<a name="l00208"></a>00208 <span class="comment">    /// @todo see \ref various &quot;Various&quot; section</span>
<a name="l00209"></a>00209 <span class="comment"></span>}
<a name="l00210"></a>00210 <span class="comment">/* ========================================================================= */</span>
<a name="l00211"></a>00211 
<a name="l00212"></a>00212 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00213"></a><a class="code" href="class_e_t_sheet_view.html#a238764c980c326bc87d71cafeb397709">00213</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a238764c980c326bc87d71cafeb397709" title="make the item provided in the argument properly visible">ETSheetView::makeIVisible</a>           (<a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * trg_i)
<a name="l00214"></a>00214 {
<a name="l00215"></a>00215     Q_UNUSED(trg_i);<span class="comment"></span>
<a name="l00216"></a>00216 <span class="comment">    /// @todo see \ref various &quot;Various&quot; section</span>
<a name="l00217"></a>00217 <span class="comment"></span>}
<a name="l00218"></a>00218 <span class="comment">/* ========================================================================= */</span>
<a name="l00219"></a>00219 
<a name="l00220"></a>00220 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00221"></a><a class="code" href="class_e_t_sheet_view.html#aede56f48bf9600e59e3a58e1af33fc0c">00221</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#aede56f48bf9600e59e3a58e1af33fc0c" title="starts a command; will cancel previous command if running">ETSheetView::startCommand</a>           (<a class="code" href="class_e_t_vp_command.html" title="abstract class representing prerequisites for a command running in a ETSheetView">ETVpCommand</a> * new_cmd)
<a name="l00222"></a>00222 {
<a name="l00223"></a>00223     <span class="comment">/* cancel running command, if any */</span>
<a name="l00224"></a>00224     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00225"></a>00225     {
<a name="l00226"></a>00226         <a class="code" href="class_e_t_sheet_view.html#a4717e93e01e82f791945007293c0a5f2" title="cancels currently running command">cancelCommand</a>();
<a name="l00227"></a>00227     }
<a name="l00228"></a>00228 
<a name="l00229"></a>00229     <span class="comment">/* save a pointer to this new command */</span>
<a name="l00230"></a>00230     <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a> = new_cmd;
<a name="l00231"></a>00231 
<a name="l00232"></a>00232     <span class="comment">/* and inform it that it has started */</span>
<a name="l00233"></a>00233     <span class="keywordflow">if</span> (new_cmd != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00234"></a>00234     {
<a name="l00235"></a>00235         <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#abb40f35d33a109f7550d91af85de0218" title="the class is informed that the command is starting">start</a>(<span class="keyword">this</span>) == <span class="keyword">false</span>)
<a name="l00236"></a>00236         {
<a name="l00237"></a>00237             <span class="keyword">delete</span> <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>;
<a name="l00238"></a>00238             <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a> = <span class="keyword">false</span>;
<a name="l00239"></a>00239         }
<a name="l00240"></a>00240     }
<a name="l00241"></a>00241 }
<a name="l00242"></a>00242 <span class="comment">/* ========================================================================= */</span>
<a name="l00243"></a>00243 
<a name="l00244"></a>00244 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00245"></a><a class="code" href="class_e_t_sheet_view.html#a4717e93e01e82f791945007293c0a5f2">00245</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a4717e93e01e82f791945007293c0a5f2" title="cancels currently running command">ETSheetView::cancelCommand</a>          ( <span class="keywordtype">void</span> )
<a name="l00246"></a>00246 {
<a name="l00247"></a>00247     <span class="comment">/* cancel running command, if any */</span>
<a name="l00248"></a>00248     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00249"></a>00249     {
<a name="l00250"></a>00250         <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#ae35397d6f001ef13361fbf0fd4ef75e2" title="the class is informed that the command is being canceled">cancel</a>(<span class="keyword">this</span>);
<a name="l00251"></a>00251         <span class="keyword">delete</span> <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>;
<a name="l00252"></a>00252         <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a> = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l00253"></a>00253     }
<a name="l00254"></a>00254     <span class="keywordflow">else</span>
<a name="l00255"></a>00255     {
<a name="l00256"></a>00256         qDebug(<span class="stringliteral">&quot;ETSheetView recieved cancel command while no command was running&quot;</span>);
<a name="l00257"></a>00257     }
<a name="l00258"></a>00258 }
<a name="l00259"></a>00259 <span class="comment">/* ========================================================================= */</span>
<a name="l00260"></a>00260 
<a name="l00261"></a>00261 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00262"></a><a class="code" href="class_e_t_sheet_view.html#ab6198569e016ba77703883a0472d69d7">00262</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ab6198569e016ba77703883a0472d69d7" title="stops current running command but ETCommand::accepted() is caled before">ETSheetView::acceptCommand</a>          ( <span class="keywordtype">void</span> )
<a name="l00263"></a>00263 {
<a name="l00264"></a>00264     <span class="comment">/* cancel running command, if any */</span>
<a name="l00265"></a>00265     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00266"></a>00266     {
<a name="l00267"></a>00267         <a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#a2e48442e8622a56972f33f46971f8da4" title="the class is informed that the command is being accepted">accepted</a>(<span class="keyword">this</span>);
<a name="l00268"></a>00268         <a class="code" href="class_e_t_sheet_view.html#a4717e93e01e82f791945007293c0a5f2" title="cancels currently running command">cancelCommand</a>();
<a name="l00269"></a>00269     }
<a name="l00270"></a>00270     <span class="keywordflow">else</span>
<a name="l00271"></a>00271     {
<a name="l00272"></a>00272         qDebug(<span class="stringliteral">&quot;ETSheetView recieved accept command while no command was running&quot;</span>);
<a name="l00273"></a>00273     }
<a name="l00274"></a>00274 }
<a name="l00275"></a>00275 <span class="comment">/* ========================================================================= */</span>
<a name="l00276"></a>00276 
<a name="l00277"></a>00277 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00278"></a><a class="code" href="class_e_t_sheet_view.html#a50f89d9edc61b751bc490972a0337640">00278</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a50f89d9edc61b751bc490972a0337640">ETSheetView::contextMenuEvent</a>       ( QContextMenuEvent * event )
<a name="l00279"></a>00279 {
<a name="l00280"></a>00280     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00281"></a>00281     {
<a name="l00282"></a>00282         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#ad3fb068e50fe8f518265c06c58fb2680">context</a>(<span class="keyword">this</span>, event))
<a name="l00283"></a>00283             <span class="keywordflow">return</span>;
<a name="l00284"></a>00284     }
<a name="l00285"></a>00285     <a class="code" href="class_e_t_sheet_view.html#a50f89d9edc61b751bc490972a0337640">QGraphicsView::contextMenuEvent</a>(event);
<a name="l00286"></a>00286 }
<a name="l00287"></a>00287 <span class="comment">/* ========================================================================= */</span>
<a name="l00288"></a>00288 
<a name="l00289"></a>00289 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00290"></a><a class="code" href="class_e_t_sheet_view.html#ada36dd53534f87a711a81243e0da82e0">00290</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ada36dd53534f87a711a81243e0da82e0">ETSheetView::dragEnterEvent</a>         ( QDragEnterEvent * event )
<a name="l00291"></a>00291 {
<a name="l00292"></a>00292     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00293"></a>00293     {
<a name="l00294"></a>00294         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#a995a48ef9449601777474c4e4453d649">dragEnter</a>(<span class="keyword">this</span>, event))
<a name="l00295"></a>00295             <span class="keywordflow">return</span>;
<a name="l00296"></a>00296     }
<a name="l00297"></a>00297     <a class="code" href="class_e_t_sheet_view.html#ada36dd53534f87a711a81243e0da82e0">QGraphicsView::dragEnterEvent</a>(event);
<a name="l00298"></a>00298 }
<a name="l00299"></a>00299 <span class="comment">/* ========================================================================= */</span>
<a name="l00300"></a>00300 
<a name="l00301"></a>00301 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00302"></a><a class="code" href="class_e_t_sheet_view.html#a28caabca4065b8378b5b40b2803fbef6">00302</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a28caabca4065b8378b5b40b2803fbef6">ETSheetView::dragLeaveEvent</a>         ( QDragLeaveEvent * event )
<a name="l00303"></a>00303 {
<a name="l00304"></a>00304     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00305"></a>00305     {
<a name="l00306"></a>00306         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#ace5d4b4b669703df76525d2cc875e26a">dragLeave</a>(<span class="keyword">this</span>, event))
<a name="l00307"></a>00307             <span class="keywordflow">return</span>;
<a name="l00308"></a>00308     }
<a name="l00309"></a>00309     <a class="code" href="class_e_t_sheet_view.html#a28caabca4065b8378b5b40b2803fbef6">QGraphicsView::dragLeaveEvent</a>(event);
<a name="l00310"></a>00310 }
<a name="l00311"></a>00311 <span class="comment">/* ========================================================================= */</span>
<a name="l00312"></a>00312 
<a name="l00313"></a>00313 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00314"></a><a class="code" href="class_e_t_sheet_view.html#a8d79e6d579436dd90f124e685544ae2a">00314</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a8d79e6d579436dd90f124e685544ae2a">ETSheetView::dragMoveEvent</a>          ( QDragMoveEvent * event )
<a name="l00315"></a>00315 {
<a name="l00316"></a>00316     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00317"></a>00317     {
<a name="l00318"></a>00318         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#a7bc954d05ad1b032b666bc1c04d358e7">dragMove</a>(<span class="keyword">this</span>, event))
<a name="l00319"></a>00319             <span class="keywordflow">return</span>;
<a name="l00320"></a>00320     }
<a name="l00321"></a>00321     <a class="code" href="class_e_t_sheet_view.html#a8d79e6d579436dd90f124e685544ae2a">QGraphicsView::dragMoveEvent</a>(event);
<a name="l00322"></a>00322 }
<a name="l00323"></a>00323 <span class="comment">/* ========================================================================= */</span>
<a name="l00324"></a>00324 
<a name="l00325"></a>00325 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00326"></a><a class="code" href="class_e_t_sheet_view.html#abc3f1c134ec46cb477a90f20569553be">00326</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#abc3f1c134ec46cb477a90f20569553be">ETSheetView::dropEvent</a>              ( QDropEvent * event )
<a name="l00327"></a>00327 {
<a name="l00328"></a>00328     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00329"></a>00329     {
<a name="l00330"></a>00330         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#a9a8566dcd135de2105044f0558a15dbf">drop</a>(<span class="keyword">this</span>, event))
<a name="l00331"></a>00331             <span class="keywordflow">return</span>;
<a name="l00332"></a>00332     }
<a name="l00333"></a>00333     <a class="code" href="class_e_t_sheet_view.html#abc3f1c134ec46cb477a90f20569553be">QGraphicsView::dropEvent</a>(event);
<a name="l00334"></a>00334 }
<a name="l00335"></a>00335 <span class="comment">/* ========================================================================= */</span>
<a name="l00336"></a>00336 
<a name="l00337"></a>00337 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00338"></a><a class="code" href="class_e_t_sheet_view.html#a382d59ad121679add861ce3664fb4691">00338</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a382d59ad121679add861ce3664fb4691">ETSheetView::keyPressEvent</a>          ( QKeyEvent * event )
<a name="l00339"></a>00339 {<span class="comment"></span>
<a name="l00340"></a>00340 <span class="comment">    /// \callgraph</span>
<a name="l00341"></a>00341 <span class="comment"></span>
<a name="l00342"></a>00342     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00343"></a>00343     {
<a name="l00344"></a>00344         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#ab601006c812a493b2265a568816b4a0b">keyPress</a>(<span class="keyword">this</span>, event))
<a name="l00345"></a>00345             <span class="keywordflow">return</span>;
<a name="l00346"></a>00346     }
<a name="l00347"></a>00347 
<a name="l00348"></a>00348     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sh = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> *<span class="keyword">&gt;</span>(scene());
<a name="l00349"></a>00349 
<a name="l00350"></a>00350     <span class="keywordflow">switch</span> (event-&gt;key())       {
<a name="l00351"></a>00351     <span class="keywordflow">case</span>    Qt::Key_Escape: {
<a name="l00352"></a>00352         sh-&gt;clearSelection();
<a name="l00353"></a>00353         sh-&gt;update();
<a name="l00354"></a>00354         <span class="keywordflow">break</span>; }
<a name="l00355"></a>00355     <span class="keywordflow">case</span>    Qt::Key_Tab:    {
<a name="l00356"></a>00356         <span class="keywordflow">break</span>; }
<a name="l00357"></a>00357     <span class="keywordflow">case</span>    Qt::Key_Backtab:{
<a name="l00358"></a>00358         <span class="keywordflow">break</span>; }
<a name="l00359"></a>00359     <span class="keywordflow">case</span>    Qt::Key_Backspace:  {
<a name="l00360"></a>00360         <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00361"></a>00361         {
<a name="l00362"></a>00362             <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a566550e7c12d84a8d187f2607ef889f0" title="tells if the sellection appears on the left (true) or on the right (false)">selIsLeft</a>())
<a name="l00363"></a>00363             {
<a name="l00364"></a>00364                 <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#aae728c65d8df5afa81d9fa09450b3935" title="recieves navigation keys">navKey</a>(<span class="keyword">this</span>, Qt::Key_Left);
<a name="l00365"></a>00365                 <a class="code" href="class_e_t_sheet_view.html#ae87a30f64df86317740a116b0af322f0" title="informs the viewport that the selection is on the right side">setSelRight</a>();
<a name="l00366"></a>00366             }
<a name="l00367"></a>00367 
<a name="l00368"></a>00368             <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#aa9af4f4a692972fa0e6738a1680d8068" title="tell if visually selected; this is not the same thing as the current si">isSelected</a>())
<a name="l00369"></a>00369             {
<a name="l00370"></a>00370                 <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#ac284b5ab60cf721ea1ee3811fc0a1e5b" title="removes the item from the ETI_CplxTxt item; may tigger an update">remove</a>();
<a name="l00371"></a>00371                 <a class="code" href="class_e_t_sheet_view.html#a11491d5408d86f8277e00faf7929e401" title="cached parent of the current sub-item (crt_sub_itm)">crt_itm</a>-&gt;update();
<a name="l00372"></a>00372             }
<a name="l00373"></a>00373             <span class="keywordflow">else</span>
<a name="l00374"></a>00374             {
<a name="l00375"></a>00375                 <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#a735df5a65b61d9a1dc508f4f687d225c" title="visually selected; this is not the same thing as the current si">select</a>();
<a name="l00376"></a>00376             }
<a name="l00377"></a>00377         }
<a name="l00378"></a>00378         <span class="keywordflow">break</span>; }
<a name="l00379"></a>00379     <span class="keywordflow">case</span>    Qt::Key_Return: {
<a name="l00380"></a>00380         <a class="code" href="class_e_t_vp_cmd___edit_sub_i.html" title="viewport command that edits an sub-item">ETVpCmd_EditSubI</a> * sic = <span class="keyword">new</span> <a class="code" href="class_e_t_vp_cmd___edit_sub_i.html" title="viewport command that edits an sub-item">ETVpCmd_EditSubI</a>();
<a name="l00381"></a>00381         <a class="code" href="class_e_t_sheet_view.html#aede56f48bf9600e59e3a58e1af33fc0c" title="starts a command; will cancel previous command if running">startCommand</a>(sic);
<a name="l00382"></a>00382         <span class="keywordflow">break</span>; }
<a name="l00383"></a>00383     <span class="keywordflow">case</span>    Qt::Key_Delete: {
<a name="l00384"></a>00384         <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00385"></a>00385         {
<a name="l00386"></a>00386             <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a566550e7c12d84a8d187f2607ef889f0" title="tells if the sellection appears on the left (true) or on the right (false)">selIsLeft</a>())
<a name="l00387"></a>00387             {
<a name="l00388"></a>00388                 <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#aae728c65d8df5afa81d9fa09450b3935" title="recieves navigation keys">navKey</a>(<span class="keyword">this</span>, Qt::Key_Right);
<a name="l00389"></a>00389                 <a class="code" href="class_e_t_sheet_view.html#a66c17e719116958234212c3a82310300" title="informs the viewport that the selection is on the left side">setSelLeft</a>();
<a name="l00390"></a>00390             }
<a name="l00391"></a>00391 
<a name="l00392"></a>00392             <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#aa9af4f4a692972fa0e6738a1680d8068" title="tell if visually selected; this is not the same thing as the current si">isSelected</a>())
<a name="l00393"></a>00393             {
<a name="l00394"></a>00394                 <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#ac284b5ab60cf721ea1ee3811fc0a1e5b" title="removes the item from the ETI_CplxTxt item; may tigger an update">remove</a>();
<a name="l00395"></a>00395                 <a class="code" href="class_e_t_sheet_view.html#a11491d5408d86f8277e00faf7929e401" title="cached parent of the current sub-item (crt_sub_itm)">crt_itm</a>-&gt;update();
<a name="l00396"></a>00396             }
<a name="l00397"></a>00397             <span class="keywordflow">else</span>
<a name="l00398"></a>00398             {
<a name="l00399"></a>00399                 <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#a735df5a65b61d9a1dc508f4f687d225c" title="visually selected; this is not the same thing as the current si">select</a>();
<a name="l00400"></a>00400             }
<a name="l00401"></a>00401         }
<a name="l00402"></a>00402         <span class="keywordflow">break</span>; }
<a name="l00403"></a>00403     <span class="keywordflow">case</span>    Qt::Key_Left:
<a name="l00404"></a>00404     <span class="keywordflow">case</span>    Qt::Key_Up:
<a name="l00405"></a>00405     <span class="keywordflow">case</span>    Qt::Key_Right:
<a name="l00406"></a>00406     <span class="keywordflow">case</span>    Qt::Key_Down:   {
<a name="l00407"></a>00407         <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a> != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00408"></a>00408         {
<a name="l00409"></a>00409             <a class="code" href="class_e_t_sheet_view.html#a49fe03247d07fdc4227bc45f688c7a17" title="current sub-item">crt_sub_itm</a>-&gt;<a class="code" href="class_e_t_sub_item.html#aae728c65d8df5afa81d9fa09450b3935" title="recieves navigation keys">navKey</a>(<span class="keyword">this</span>, (Qt::Key)event-&gt;key());
<a name="l00410"></a>00410         }
<a name="l00411"></a>00411         <span class="keywordflow">else</span>
<a name="l00412"></a>00412         {<span class="comment"></span>
<a name="l00413"></a>00413 <span class="comment">            /// @todo select one from current view</span>
<a name="l00414"></a>00414 <span class="comment"></span>        }
<a name="l00415"></a>00415         <span class="keywordflow">break</span>; }
<a name="l00416"></a>00416     <span class="keywordflow">default</span>:                {
<a name="l00417"></a>00417         <a class="code" href="class_e_t_sheet_view.html#a382d59ad121679add861ce3664fb4691">QGraphicsView::keyPressEvent</a>(event);
<a name="l00418"></a>00418         <span class="keywordflow">return</span>; }
<a name="l00419"></a>00419     }
<a name="l00420"></a>00420     <span class="keyword">event</span>-&gt;accept();
<a name="l00421"></a>00421 
<a name="l00422"></a>00422 }
<a name="l00423"></a>00423 <span class="comment">/* ========================================================================= */</span>
<a name="l00424"></a>00424 
<a name="l00425"></a>00425 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00426"></a><a class="code" href="class_e_t_sheet_view.html#a3a256e50cc5ff3e1e29d7130fa32f3c3">00426</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a3a256e50cc5ff3e1e29d7130fa32f3c3">ETSheetView::keyReleaseEvent</a>        ( QKeyEvent * event )
<a name="l00427"></a>00427 {
<a name="l00428"></a>00428     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00429"></a>00429     {
<a name="l00430"></a>00430         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#abb89aac207b14f8ab95270e9f0612adc">keyRelease</a>(<span class="keyword">this</span>, event))
<a name="l00431"></a>00431             <span class="keywordflow">return</span>;
<a name="l00432"></a>00432     }
<a name="l00433"></a>00433     <a class="code" href="class_e_t_sheet_view.html#a3a256e50cc5ff3e1e29d7130fa32f3c3">QGraphicsView::keyReleaseEvent</a>(event);
<a name="l00434"></a>00434 }
<a name="l00435"></a>00435 <span class="comment">/* ========================================================================= */</span>
<a name="l00436"></a>00436 
<a name="l00437"></a>00437 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00438"></a><a class="code" href="class_e_t_sheet_view.html#aab5f7c9530ffccccf9a6955111618606">00438</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#aab5f7c9530ffccccf9a6955111618606">ETSheetView::mouseDoubleClickEvent</a>  ( QMouseEvent * event )
<a name="l00439"></a>00439 {
<a name="l00440"></a>00440     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00441"></a>00441     {
<a name="l00442"></a>00442         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#afb56544aa243702fd1776e5b7502b5a0">mouseDoubleClick</a>(<span class="keyword">this</span>, event))
<a name="l00443"></a>00443             <span class="keywordflow">return</span>;
<a name="l00444"></a>00444     }
<a name="l00445"></a>00445     <a class="code" href="class_e_t_sheet_view.html#aab5f7c9530ffccccf9a6955111618606">QGraphicsView::mouseDoubleClickEvent</a>(event);
<a name="l00446"></a>00446 }
<a name="l00447"></a>00447 <span class="comment">/* ========================================================================= */</span>
<a name="l00448"></a>00448 
<a name="l00449"></a>00449 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00450"></a><a class="code" href="class_e_t_sheet_view.html#ab82cce4e9be3e76150fb047c1c729985">00450</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ab82cce4e9be3e76150fb047c1c729985">ETSheetView::mouseMoveEvent</a>         ( QMouseEvent * event )
<a name="l00451"></a>00451 {
<a name="l00452"></a>00452 
<a name="l00453"></a>00453     <a class="code" href="main_8cc.html#ac217449d3d899f76481b08cf3cc9acc0" title="hold pointer to main gui object in global variable for easy access">g_MW</a>-&gt;<a class="code" href="class_main_window.html#affac35aad9d07b3f9c6e6cfef5d433b2">c_sheet</a>.<a class="code" href="class_m_w___sheet_slots.html#a0cc3ca99d4c6f14545cd6fb402b316d2" title="display current XY position in status bar">showXY</a>(mapToScene(event-&gt;pos()));
<a name="l00454"></a>00454 
<a name="l00455"></a>00455     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00456"></a>00456     {
<a name="l00457"></a>00457         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#abce6c7662c51e5c3a20d90d39b9adf92">mouseMove</a>(<span class="keyword">this</span>, event))
<a name="l00458"></a>00458             <span class="keywordflow">return</span>;
<a name="l00459"></a>00459     }
<a name="l00460"></a>00460     <a class="code" href="class_e_t_sheet_view.html#ab82cce4e9be3e76150fb047c1c729985">QGraphicsView::mouseMoveEvent</a>(event);
<a name="l00461"></a>00461 }
<a name="l00462"></a>00462 <span class="comment">/* ========================================================================= */</span>
<a name="l00463"></a>00463 
<a name="l00464"></a>00464 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00465"></a><a class="code" href="class_e_t_sheet_view.html#a6aacfa293897e4a21efa5b8aa688cd0d">00465</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a6aacfa293897e4a21efa5b8aa688cd0d">ETSheetView::mousePressEvent</a>        ( QMouseEvent * event )
<a name="l00466"></a>00466 {
<a name="l00467"></a>00467     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> *<span class="keyword">&gt;</span>(scene());
<a name="l00468"></a>00468     <span class="keywordflow">if</span> (sht-&gt;<a class="code" href="class_e_t_sheet.html#a7f91174cc0e5fcc88ab8b9373dfdc370" title="tell which is current viewport (should never be null)">currentVP</a>() != <span class="keyword">this</span>)
<a name="l00469"></a>00469     {
<a name="l00470"></a>00470         sht-&gt;<a class="code" href="class_e_t_sheet.html#a268f805202701c67e7334201965bf4c3" title="tell which is current viewport (should never be null)">setCurrentVp</a>(<span class="keyword">this</span>);
<a name="l00471"></a>00471         <span class="keyword">event</span>-&gt;accept();
<a name="l00472"></a>00472         <span class="keywordflow">return</span>;
<a name="l00473"></a>00473     }
<a name="l00474"></a>00474 
<a name="l00475"></a>00475     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00476"></a>00476     {
<a name="l00477"></a>00477         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#ad71a8b31e1ba5256e43f21da9c82ff95">mousePress</a>(<span class="keyword">this</span>, event))
<a name="l00478"></a>00478             <span class="keywordflow">return</span>;
<a name="l00479"></a>00479     }
<a name="l00480"></a>00480     <a class="code" href="class_e_t_sheet_view.html#a6aacfa293897e4a21efa5b8aa688cd0d">QGraphicsView::mousePressEvent</a>(event);
<a name="l00481"></a>00481 }
<a name="l00482"></a>00482 <span class="comment">/* ========================================================================= */</span>
<a name="l00483"></a>00483 
<a name="l00484"></a>00484 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00485"></a><a class="code" href="class_e_t_sheet_view.html#a0e543916ab9f3e78bbe1420331946b27">00485</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a0e543916ab9f3e78bbe1420331946b27">ETSheetView::mouseReleaseEvent</a>      ( QMouseEvent * event )
<a name="l00486"></a>00486 {
<a name="l00487"></a>00487     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00488"></a>00488     {
<a name="l00489"></a>00489         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#a82c24bb89784483878867836cbe60a69">mouseRelease</a>(<span class="keyword">this</span>, event))
<a name="l00490"></a>00490             <span class="keywordflow">return</span>;
<a name="l00491"></a>00491     }
<a name="l00492"></a>00492     <a class="code" href="class_e_t_sheet_view.html#a0e543916ab9f3e78bbe1420331946b27">QGraphicsView::mouseReleaseEvent</a>(event);
<a name="l00493"></a>00493 }
<a name="l00494"></a>00494 <span class="comment">/* ========================================================================= */</span>
<a name="l00495"></a>00495 
<a name="l00496"></a>00496 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00497"></a><a class="code" href="class_e_t_sheet_view.html#a0ca511b80901e95fea827d86700be731">00497</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a0ca511b80901e95fea827d86700be731">ETSheetView::wheelEvent</a>             ( QWheelEvent * event )
<a name="l00498"></a>00498 {
<a name="l00499"></a>00499     <span class="keywordflow">if</span> (<a class="code" href="class_e_t_sheet_view.html#a06dcbfafe4f9990e89d5407fb0f20224" title="tell if we are running a command or we&#39;re in idle mode">inCommand</a>())
<a name="l00500"></a>00500     {
<a name="l00501"></a>00501         <span class="keywordflow">if</span> (!<a class="code" href="class_e_t_sheet_view.html#a6ad3d85251cba7939ca695e01e809888" title="currently running command / NULL if none is running">running_command</a>-&gt;<a class="code" href="class_e_t_vp_command.html#a8ccab4db3b4322f97b9cb454bb202c48">wheel</a>(<span class="keyword">this</span>, event))
<a name="l00502"></a>00502             <span class="keywordflow">return</span>;
<a name="l00503"></a>00503     }
<a name="l00504"></a>00504     <span class="keywordflow">if</span> (event-&gt;orientation() == Qt::Vertical)
<a name="l00505"></a>00505     {
<a name="l00506"></a>00506         <span class="comment">/* default zoom scrolls the area */</span>
<a name="l00507"></a>00507         <span class="keywordflow">if</span> ((event-&gt;modifiers() &amp; Qt::ControlModifier) != 0)
<a name="l00508"></a>00508         { <span class="comment">/* with ctrl hel down, we zoom */</span>
<a name="l00509"></a>00509             qreal fact;
<a name="l00510"></a>00510             <span class="keywordflow">if</span> (event-&gt;delta() &gt; 0)
<a name="l00511"></a>00511             {
<a name="l00512"></a>00512                 fact = 1 + (
<a name="l00513"></a>00513                             ((qreal)event-&gt;delta() *
<a name="l00514"></a>00514                              400) /
<a name="l00515"></a>00515                             100000
<a name="l00516"></a>00516                             );
<a name="l00517"></a>00517                 <a class="code" href="class_e_t_sheet_view.html#af4696c2081d49d2dcf6e6dab5b5f2c40" title="uses provided factor to change the scale, making texts larger">zoomIn</a>(fact);
<a name="l00518"></a>00518             }
<a name="l00519"></a>00519             <span class="keywordflow">else</span>
<a name="l00520"></a>00520             {
<a name="l00521"></a>00521                 fact = 1 + (
<a name="l00522"></a>00522                             (-1) *
<a name="l00523"></a>00523                             (((qreal)event-&gt;delta() *
<a name="l00524"></a>00524                               400) /
<a name="l00525"></a>00525                              100000)
<a name="l00526"></a>00526                             );
<a name="l00527"></a>00527                 <a class="code" href="class_e_t_sheet_view.html#ab2418e2354197a47d5d5137878e741c2" title="uses provided factor&#39;s inverse (1/n) to change the scale, making texts smaller">zoomOut</a>(fact);
<a name="l00528"></a>00528             }
<a name="l00529"></a>00529             <span class="keyword">event</span>-&gt;accept();
<a name="l00530"></a>00530             <span class="keywordflow">return</span>;
<a name="l00531"></a>00531         }
<a name="l00532"></a>00532     }
<a name="l00533"></a>00533     <a class="code" href="class_e_t_sheet_view.html#a0ca511b80901e95fea827d86700be731">QGraphicsView::wheelEvent</a>(event);
<a name="l00534"></a>00534 }
<a name="l00535"></a>00535 <span class="comment">/* ========================================================================= */</span>
<a name="l00536"></a>00536 
<a name="l00537"></a>00537 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00538"></a><a class="code" href="class_e_t_sheet_view.html#ad382918511324f8cd92443b82de092b1">00538</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ad382918511324f8cd92443b82de092b1" title="item provided in argument requests selecting first item to it&#39;s left">ETSheetView::navLeaveLeft</a>           (<a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * it_base)
<a name="l00539"></a>00539 {
<a name="l00540"></a>00540     Q_UNUSED(it_base);
<a name="l00541"></a>00541 <span class="comment"></span>
<a name="l00542"></a>00542 <span class="comment">    /// @todo implement navigation</span>
<a name="l00543"></a>00543 <span class="comment"></span>
<a name="l00544"></a>00544 }
<a name="l00545"></a>00545 <span class="comment">/* ========================================================================= */</span>
<a name="l00546"></a>00546 
<a name="l00547"></a>00547 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00548"></a><a class="code" href="class_e_t_sheet_view.html#a156cebbc44e1edc688673fbccddaa67e">00548</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a156cebbc44e1edc688673fbccddaa67e" title="item provided in argument requests selecting first item to it&#39;s right">ETSheetView::navLeaveRight</a>          (<a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * it_base)
<a name="l00549"></a>00549 {
<a name="l00550"></a>00550     Q_UNUSED(it_base);
<a name="l00551"></a>00551 <span class="comment"></span>
<a name="l00552"></a>00552 <span class="comment">    /// @todo implement navigation</span>
<a name="l00553"></a>00553 <span class="comment"></span>
<a name="l00554"></a>00554 }
<a name="l00555"></a>00555 <span class="comment">/* ========================================================================= */</span>
<a name="l00556"></a>00556 
<a name="l00557"></a>00557 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00558"></a><a class="code" href="class_e_t_sheet_view.html#a9f76384ab43367dcd137672d174d2ee4">00558</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#a9f76384ab43367dcd137672d174d2ee4" title="item provided in argument requests selecting first item above it">ETSheetView::navLeaveTop</a>            (<a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * it_base)
<a name="l00559"></a>00559 {
<a name="l00560"></a>00560     Q_UNUSED(it_base);
<a name="l00561"></a>00561 <span class="comment"></span>
<a name="l00562"></a>00562 <span class="comment">    /// @todo implement navigation</span>
<a name="l00563"></a>00563 <span class="comment"></span>
<a name="l00564"></a>00564 }
<a name="l00565"></a>00565 <span class="comment">/* ========================================================================= */</span>
<a name="l00566"></a>00566 
<a name="l00567"></a>00567 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00568"></a><a class="code" href="class_e_t_sheet_view.html#aa3688736fb84b3349bf2200d70949ad4">00568</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#aa3688736fb84b3349bf2200d70949ad4" title="item provided in argument requests selecting first item below i">ETSheetView::navLeaveBtm</a>            (<a class="code" href="class_e_t_i___cplx_txt.html" title="class representing a complex text; this may or may not represent an equation">ETI_CplxTxt</a> * it_base)
<a name="l00569"></a>00569 {
<a name="l00570"></a>00570     Q_UNUSED(it_base);
<a name="l00571"></a>00571 <span class="comment"></span>
<a name="l00572"></a>00572 <span class="comment">    /// @todo implement navigation</span>
<a name="l00573"></a>00573 <span class="comment"></span>
<a name="l00574"></a>00574 }
<a name="l00575"></a>00575 <span class="comment">/* ========================================================================= */</span>
<a name="l00576"></a>00576 
<a name="l00577"></a>00577 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00578"></a><a class="code" href="class_e_t_sheet_view.html#ab4e76dbeb1e1f396d9d2851c812f1305">00578</a> <span class="keywordtype">void</span>        <a class="code" href="class_e_t_sheet_view.html#ab4e76dbeb1e1f396d9d2851c812f1305">ETSheetView::drawBackground</a>         (
<a name="l00579"></a>00579         QPainter * painter, <span class="keyword">const</span> QRectF &amp; rect )
<a name="l00580"></a>00580 {
<a name="l00581"></a>00581     <span class="comment">/* clear the background */</span>
<a name="l00582"></a>00582     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * <span class="keyword">&gt;</span>(scene());
<a name="l00583"></a>00583 
<a name="l00584"></a>00584     <span class="keywordflow">if</span> (<span class="keyword">this</span> == sht-&gt;<a class="code" href="class_e_t_sheet.html#a7f91174cc0e5fcc88ab8b9373dfdc370" title="tell which is current viewport (should never be null)">currentVP</a>())
<a name="l00585"></a>00585         painter-&gt;fillRect(rect, backgroundBrush());
<a name="l00586"></a>00586     <span class="keywordflow">else</span>
<a name="l00587"></a>00587     {<span class="comment"></span>
<a name="l00588"></a>00588 <span class="comment">        /// @todo read the color to be used from settings</span>
<a name="l00589"></a>00589 <span class="comment"></span>        painter-&gt;fillRect(rect, Qt::darkGray);
<a name="l00590"></a>00590     }
<a name="l00591"></a>00591 
<a name="l00592"></a>00592 
<a name="l00593"></a>00593     <span class="comment">//  /// @todo settings to enable / disable grid</span>
<a name="l00594"></a>00594 
<a name="l00595"></a>00595 <span class="comment">//      qreal cross_side = 5 / getScale();</span>
<a name="l00596"></a>00596 <span class="comment">//      qreal cross_side2 = 4 / getScale();</span>
<a name="l00597"></a>00597 <span class="comment">//      qreal span = 0.0000001;</span>
<a name="l00598"></a>00598 <span class="comment">//      while (rect.width() / span &gt; 20)</span>
<a name="l00599"></a>00599 <span class="comment">//      {</span>
<a name="l00600"></a>00600 <span class="comment">//          span *= 10;</span>
<a name="l00601"></a>00601 <span class="comment">//      }</span>
<a name="l00602"></a>00602 
<a name="l00603"></a>00603 <span class="comment">//      qreal x_start = (floor(rect.x() / span) ) * span;</span>
<a name="l00604"></a>00604 <span class="comment">//      qreal y_start = (floor(rect.y() / span) ) * span;</span>
<a name="l00605"></a>00605 
<a name="l00606"></a>00606 <span class="comment">//      /* loop horizontally, starting from left to right */</span>
<a name="l00607"></a>00607 <span class="comment">//      qreal x_crt = x_start;</span>
<a name="l00608"></a>00608 <span class="comment">//      qreal y_crt;</span>
<a name="l00609"></a>00609 <span class="comment">//      while (x_crt &lt; rect.right())</span>
<a name="l00610"></a>00610 <span class="comment">//      {</span>
<a name="l00611"></a>00611 <span class="comment">//          /* loop vertically, starting from top to bottom*/</span>
<a name="l00612"></a>00612 <span class="comment">//          y_crt = y_start;</span>
<a name="l00613"></a>00613 <span class="comment">//          while (y_crt &lt; rect.bottom())</span>
<a name="l00614"></a>00614 <span class="comment">//          {</span>
<a name="l00615"></a>00615 <span class="comment">//              painter-&gt;drawLine(</span>
<a name="l00616"></a>00616 <span class="comment">//                          x_crt - cross_side,</span>
<a name="l00617"></a>00617 <span class="comment">//                          y_crt,</span>
<a name="l00618"></a>00618 <span class="comment">//                          x_crt + cross_side2,</span>
<a name="l00619"></a>00619 <span class="comment">//                          y_crt</span>
<a name="l00620"></a>00620 <span class="comment">//                          );</span>
<a name="l00621"></a>00621 
<a name="l00622"></a>00622 <span class="comment">//              painter-&gt;drawLine(</span>
<a name="l00623"></a>00623 <span class="comment">//                          x_crt,</span>
<a name="l00624"></a>00624 <span class="comment">//                          y_crt - cross_side,</span>
<a name="l00625"></a>00625 <span class="comment">//                          x_crt,</span>
<a name="l00626"></a>00626 <span class="comment">//                          y_crt + cross_side2</span>
<a name="l00627"></a>00627 <span class="comment">//                          );</span>
<a name="l00628"></a>00628 
<a name="l00629"></a>00629 <span class="comment">//              y_crt += span;</span>
<a name="l00630"></a>00630 <span class="comment">//          }</span>
<a name="l00631"></a>00631 
<a name="l00632"></a>00632 <span class="comment">//          x_crt += span;</span>
<a name="l00633"></a>00633 <span class="comment">//      }</span>
<a name="l00634"></a>00634 
<a name="l00635"></a>00635 
<a name="l00636"></a>00636 }
<a name="l00637"></a>00637 <span class="comment">/* ========================================================================= */</span>
<a name="l00638"></a>00638 
<a name="l00639"></a>00639 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00640"></a><a class="code" href="class_e_t_sheet_view.html#a239fc84997d56af6b0ef9a2ac6ff9b5b">00640</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#a239fc84997d56af6b0ef9a2ac6ff9b5b" title="loads the tree of viewports and splits from DOM element">ETSheetView::loadXML</a>                (
<a name="l00641"></a>00641         <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * dest, QWidget * parent, QDomElement dom_e )
<a name="l00642"></a>00642 {
<a name="l00643"></a>00643     QDomElement li_it;
<a name="l00644"></a>00644 
<a name="l00645"></a>00645     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#aa0b0532a191d25cc54436c9fe3dfd504">XML_TAG_VP_SPLIT</a>);
<a name="l00646"></a>00646     <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00647"></a>00647     { <span class="comment">/* one viewport expected */</span>
<a name="l00648"></a>00648         li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l00649"></a>00649         <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00650"></a>00650         { <span class="comment">/* no viewport. wrong input. create default one */</span>
<a name="l00651"></a>00651             qDebug() &lt;&lt; <span class="stringliteral">&quot;No viewport information specified&quot;</span>;
<a name="l00652"></a>00652             <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * vp_crt = <span class="keyword">new</span> <a class="code" href="class_e_t_sheet_view.html#af4f9608ab11edd65c3b1a1f532dbcf4f" title="constructor;">ETSheetView</a>(dest, dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>());
<a name="l00653"></a>00653             dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>()-&gt;setWidget(vp_crt);
<a name="l00654"></a>00654             dest-&gt;<a class="code" href="class_e_t_sheet.html#a268f805202701c67e7334201965bf4c3" title="tell which is current viewport (should never be null)">setCurrentVp</a>(vp_crt);
<a name="l00655"></a>00655         }
<a name="l00656"></a>00656         <span class="keywordflow">else</span>
<a name="l00657"></a>00657         { <span class="comment">/* create the one and only viewport */</span>
<a name="l00658"></a>00658             <a class="code" href="class_e_t_sheet_view.html#afa4da51c58c53544c286da5c2d1dc2de" title="creates an viewport in specified sheet based on DOM node">loadXMLViewport</a>(dest, parent, li_it);
<a name="l00659"></a>00659         }
<a name="l00660"></a>00660     }
<a name="l00661"></a>00661     <span class="keywordflow">else</span>
<a name="l00662"></a>00662     { <span class="comment">/* we&#39;re in the split game */</span>
<a name="l00663"></a>00663         <a class="code" href="class_e_t_sheet_view.html#a13132d1d2d26028c5c47258b466c3f55" title="creates an split in specified sheet based on DOM node">loadXMLVpSplit</a>(dest, parent, li_it);
<a name="l00664"></a>00664     }
<a name="l00665"></a>00665 
<a name="l00666"></a>00666 }
<a name="l00667"></a>00667 <span class="comment">/* ========================================================================= */</span>
<a name="l00668"></a>00668 
<a name="l00669"></a>00669 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00670"></a><a class="code" href="class_e_t_sheet_view.html#afa4da51c58c53544c286da5c2d1dc2de">00670</a> <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> *   <a class="code" href="class_e_t_sheet_view.html#afa4da51c58c53544c286da5c2d1dc2de" title="creates an viewport in specified sheet based on DOM node">ETSheetView::loadXMLViewport</a>        (
<a name="l00671"></a>00671         <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * dest, QWidget * parent, QDomElement dom_e )
<a name="l00672"></a>00672 {
<a name="l00673"></a>00673 
<a name="l00674"></a>00674     <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * new_vp = <span class="keyword">new</span> <a class="code" href="class_e_t_sheet_view.html#af4f9608ab11edd65c3b1a1f532dbcf4f" title="constructor;">ETSheetView</a>(dest, parent);
<a name="l00675"></a>00675     QDomElement li_it;
<a name="l00676"></a>00676     QDomElement li_it2;
<a name="l00677"></a>00677     <span class="keywordtype">bool</span>        b_ok;
<a name="l00678"></a>00678     qreal       r_x = 0.0;
<a name="l00679"></a>00679     qreal       r_y = 0.0;
<a name="l00680"></a>00680 
<a name="l00681"></a>00681 
<a name="l00682"></a>00682 
<a name="l00683"></a>00683     <span class="keywordflow">if</span> (parent == dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>())
<a name="l00684"></a>00684     { <span class="comment">/* the top level */</span>
<a name="l00685"></a>00685         dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>()-&gt;setWidget(new_vp);
<a name="l00686"></a>00686     }
<a name="l00687"></a>00687     <span class="keywordflow">else</span>
<a name="l00688"></a>00688     {
<a name="l00689"></a>00689         QSplitter * spl = <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>(parent);
<a name="l00690"></a>00690         spl-&gt;addWidget(new_vp);
<a name="l00691"></a>00691     }
<a name="l00692"></a>00692     new_vp-&gt;<a class="code" href="class_e_t_sheet_view.html#a1299bac40f077bdb2a070d24527f6b4a">setScene</a>(dest);
<a name="l00693"></a>00693     new_vp-&gt;show();
<a name="l00694"></a>00694 
<a name="l00695"></a>00695 
<a name="l00696"></a>00696     <span class="comment">/* the position whitin viewport */</span>
<a name="l00697"></a>00697     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a0189f98ee9290e6e1ba89f93cb0ab0ad">XML_TAG_TRANSL</a>);
<a name="l00698"></a>00698     <span class="keywordflow">if</span> (!li_it.isNull())
<a name="l00699"></a>00699     {
<a name="l00700"></a>00700         <span class="keywordflow">for</span> (;;)
<a name="l00701"></a>00701         {
<a name="l00702"></a>00702             li_it2 = li_it.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#af0866489c168e1899095869e1dafe62f">XML_TAG_X</a>);
<a name="l00703"></a>00703             <span class="keywordflow">if</span> (!li_it2.isNull())
<a name="l00704"></a>00704             {
<a name="l00705"></a>00705                 r_x = li_it2.text().toDouble(&amp;b_ok);
<a name="l00706"></a>00706                 <span class="keywordflow">if</span> (!b_ok)
<a name="l00707"></a>00707                 {
<a name="l00708"></a>00708                     qDebug() &lt;&lt; <span class="stringliteral">&quot;The position could not be understood: &lt;&quot;</span>
<a name="l00709"></a>00709                              &lt;&lt; li_it2.text() &lt;&lt; <span class="stringliteral">&quot;&gt;&quot;</span>;
<a name="l00710"></a>00710                     <span class="keywordflow">break</span>;
<a name="l00711"></a>00711                 }
<a name="l00712"></a>00712 
<a name="l00713"></a>00713                 <span class="keywordflow">if</span> (!li_it2.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#af0866489c168e1899095869e1dafe62f">XML_TAG_X</a>).isNull())
<a name="l00714"></a>00714                 {
<a name="l00715"></a>00715                     qDebug() &lt;&lt; <span class="stringliteral">&quot;The input presented more than one &quot;</span>
<a name="l00716"></a>00716                              &lt;&lt; <a class="code" href="_e_t_sheet_8h.html#af0866489c168e1899095869e1dafe62f">XML_TAG_X</a> &lt;&lt; <span class="stringliteral">&quot; tags, when only &quot;</span>
<a name="l00717"></a>00717                              &lt;&lt; <span class="stringliteral">&quot;one per viewport element is allowed&quot;</span>;
<a name="l00718"></a>00718                 }
<a name="l00719"></a>00719             }
<a name="l00720"></a>00720             li_it2 = li_it.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#ae93bce2d4f2bf25161520d842ca1cb2b">XML_TAG_Y</a>);
<a name="l00721"></a>00721             <span class="keywordflow">if</span> (!li_it2.isNull())
<a name="l00722"></a>00722             {
<a name="l00723"></a>00723                 r_y = li_it2.text().toDouble(&amp;b_ok);
<a name="l00724"></a>00724                 <span class="keywordflow">if</span> (!b_ok)
<a name="l00725"></a>00725                 {
<a name="l00726"></a>00726                     r_x = 0.0;
<a name="l00727"></a>00727                     qDebug() &lt;&lt; <span class="stringliteral">&quot;The position could not be understood: &lt;&quot;</span>
<a name="l00728"></a>00728                              &lt;&lt; li_it2.text() &lt;&lt; <span class="stringliteral">&quot;&gt;&quot;</span>;
<a name="l00729"></a>00729                     <span class="keywordflow">break</span>;
<a name="l00730"></a>00730                 }
<a name="l00731"></a>00731                 <span class="keywordflow">if</span> (!li_it2.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#ae93bce2d4f2bf25161520d842ca1cb2b">XML_TAG_Y</a>).isNull())
<a name="l00732"></a>00732                 {
<a name="l00733"></a>00733                     qDebug() &lt;&lt; <span class="stringliteral">&quot;The input presented more than one &quot;</span>
<a name="l00734"></a>00734                              &lt;&lt; <a class="code" href="_e_t_sheet_8h.html#ae93bce2d4f2bf25161520d842ca1cb2b">XML_TAG_Y</a> &lt;&lt; <span class="stringliteral">&quot; tags, when only &quot;</span>
<a name="l00735"></a>00735                              &lt;&lt; <span class="stringliteral">&quot;one per viewport element is allowed&quot;</span>;
<a name="l00736"></a>00736                 }
<a name="l00737"></a>00737             }
<a name="l00738"></a>00738             <span class="keywordflow">break</span>;
<a name="l00739"></a>00739         }
<a name="l00740"></a>00740         new_vp-&gt;<a class="code" href="class_e_t_sheet_view.html#a6aae6386fb887c134c91268d37521422" title="sneak in to see what&#39;s up">translate</a>(-r_x, -r_y);
<a name="l00741"></a>00741 
<a name="l00742"></a>00742         <span class="keywordflow">if</span> (!li_it.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#a0189f98ee9290e6e1ba89f93cb0ab0ad">XML_TAG_TRANSL</a>).isNull())
<a name="l00743"></a>00743         {
<a name="l00744"></a>00744             qDebug() &lt;&lt; <span class="stringliteral">&quot;The input presented more than one &quot;</span>
<a name="l00745"></a>00745                      &lt;&lt; <a class="code" href="_e_t_sheet_8h.html#a0189f98ee9290e6e1ba89f93cb0ab0ad">XML_TAG_TRANSL</a> &lt;&lt; <span class="stringliteral">&quot; tags, when only &quot;</span>
<a name="l00746"></a>00746                      &lt;&lt; <span class="stringliteral">&quot;one per viewport element is allowed&quot;</span>;
<a name="l00747"></a>00747         }
<a name="l00748"></a>00748     }
<a name="l00749"></a>00749 
<a name="l00750"></a>00750     <span class="comment">/* the rotation */</span>
<a name="l00751"></a>00751     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#aed9ff3467f108d2801b9c104a456af2b">XML_TAG_ROT</a>);
<a name="l00752"></a>00752     <span class="keywordflow">if</span> (!li_it.isNull())
<a name="l00753"></a>00753     {
<a name="l00754"></a>00754         r_x = li_it.text().toDouble(&amp;b_ok);
<a name="l00755"></a>00755         <span class="keywordflow">if</span> (!b_ok)
<a name="l00756"></a>00756         {
<a name="l00757"></a>00757             r_x = 0.0;
<a name="l00758"></a>00758             qDebug() &lt;&lt; <span class="stringliteral">&quot;The rotation could not be understood: &lt;&quot;</span>
<a name="l00759"></a>00759                      &lt;&lt; li_it.text() &lt;&lt; <span class="stringliteral">&quot;&gt;&quot;</span>;
<a name="l00760"></a>00760         }
<a name="l00761"></a>00761         <span class="keywordflow">else</span>
<a name="l00762"></a>00762         {
<a name="l00763"></a>00763             new_vp-&gt;rotate(r_x);
<a name="l00764"></a>00764         }
<a name="l00765"></a>00765 
<a name="l00766"></a>00766         <span class="keywordflow">if</span> (!li_it.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#aed9ff3467f108d2801b9c104a456af2b">XML_TAG_ROT</a>).isNull())
<a name="l00767"></a>00767         {
<a name="l00768"></a>00768             qDebug() &lt;&lt; <span class="stringliteral">&quot;The input presented more than one &quot;</span>
<a name="l00769"></a>00769                      &lt;&lt; <a class="code" href="_e_t_sheet_8h.html#aed9ff3467f108d2801b9c104a456af2b">XML_TAG_ROT</a> &lt;&lt; <span class="stringliteral">&quot; tags, when only &quot;</span>
<a name="l00770"></a>00770                      &lt;&lt; <span class="stringliteral">&quot;one per viewport element is allowed&quot;</span>;
<a name="l00771"></a>00771         }
<a name="l00772"></a>00772 
<a name="l00773"></a>00773     }
<a name="l00774"></a>00774 
<a name="l00775"></a>00775     <span class="comment">/* the scale */</span>
<a name="l00776"></a>00776     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#aa90e049cac810d38d59e5f569304a936">XML_TAG_SCALE</a>);
<a name="l00777"></a>00777     <span class="keywordflow">if</span> (!li_it.isNull())
<a name="l00778"></a>00778     {
<a name="l00779"></a>00779         r_x = li_it.text().toDouble(&amp;b_ok);
<a name="l00780"></a>00780         <span class="keywordflow">if</span> (!b_ok)
<a name="l00781"></a>00781         {
<a name="l00782"></a>00782             r_x = 0.0;
<a name="l00783"></a>00783             qDebug() &lt;&lt; <span class="stringliteral">&quot;The scale could not be understood: &lt;&quot;</span>
<a name="l00784"></a>00784                      &lt;&lt; li_it.text() &lt;&lt; <span class="stringliteral">&quot;&gt;&quot;</span>;
<a name="l00785"></a>00785         }
<a name="l00786"></a>00786         <span class="keywordflow">else</span>
<a name="l00787"></a>00787         {
<a name="l00788"></a>00788             new_vp-&gt;scale(r_x, r_x);
<a name="l00789"></a>00789         }
<a name="l00790"></a>00790 
<a name="l00791"></a>00791         <span class="keywordflow">if</span> (!li_it.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#aed9ff3467f108d2801b9c104a456af2b">XML_TAG_ROT</a>).isNull())
<a name="l00792"></a>00792         {
<a name="l00793"></a>00793             qDebug() &lt;&lt; <span class="stringliteral">&quot;The input presented more than one &quot;</span>
<a name="l00794"></a>00794                      &lt;&lt; <a class="code" href="_e_t_sheet_8h.html#aa90e049cac810d38d59e5f569304a936">XML_TAG_SCALE</a> &lt;&lt; <span class="stringliteral">&quot; tags, when only &quot;</span>
<a name="l00795"></a>00795                      &lt;&lt; <span class="stringliteral">&quot;one per viewport element is allowed&quot;</span>;
<a name="l00796"></a>00796         }
<a name="l00797"></a>00797     }
<a name="l00798"></a>00798 
<a name="l00799"></a>00799     <span class="comment">/* is this the active one? */</span>
<a name="l00800"></a>00800     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a093464e128c9ff17a174d08c9187299b">XML_TAG_ACTIVE</a>);
<a name="l00801"></a>00801     <span class="keywordflow">if</span> (!li_it.isNull())
<a name="l00802"></a>00802     {
<a name="l00803"></a>00803 
<a name="l00804"></a>00804         dest-&gt;<a class="code" href="class_e_t_sheet.html#a268f805202701c67e7334201965bf4c3" title="tell which is current viewport (should never be null)">setCurrentVp</a>(new_vp);
<a name="l00805"></a>00805 
<a name="l00806"></a>00806         <span class="keywordflow">if</span> (!li_it.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#a093464e128c9ff17a174d08c9187299b">XML_TAG_ACTIVE</a>).isNull())
<a name="l00807"></a>00807         {
<a name="l00808"></a>00808             qDebug() &lt;&lt; <span class="stringliteral">&quot;The input presented more than one &quot;</span>
<a name="l00809"></a>00809                      &lt;&lt; <a class="code" href="_e_t_sheet_8h.html#a093464e128c9ff17a174d08c9187299b">XML_TAG_ACTIVE</a> &lt;&lt; <span class="stringliteral">&quot; tags, when only &quot;</span>
<a name="l00810"></a>00810                      &lt;&lt; <span class="stringliteral">&quot;one per viewport element is allowed&quot;</span>;
<a name="l00811"></a>00811         }
<a name="l00812"></a>00812 
<a name="l00813"></a>00813     }
<a name="l00814"></a>00814 
<a name="l00815"></a>00815 
<a name="l00816"></a>00816     <span class="keywordflow">return</span> new_vp;
<a name="l00817"></a>00817 }
<a name="l00818"></a>00818 <span class="comment">/* ========================================================================= */</span>
<a name="l00819"></a>00819 
<a name="l00820"></a>00820 
<a name="l00821"></a>00821 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00822"></a><a class="code" href="class_e_t_sheet_view.html#a13132d1d2d26028c5c47258b466c3f55">00822</a> <span class="keywordtype">void</span> *          <a class="code" href="class_e_t_sheet_view.html#a13132d1d2d26028c5c47258b466c3f55" title="creates an split in specified sheet based on DOM node">ETSheetView::loadXMLVpSplit</a>     (
<a name="l00823"></a>00823         <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * dest, QWidget * parent, QDomElement dom_e )
<a name="l00824"></a>00824 {
<a name="l00825"></a>00825 
<a name="l00826"></a>00826     QDomElement li_it;
<a name="l00827"></a>00827     QSplitter * spl_new = <span class="keyword">new</span> QSplitter(parent);
<a name="l00828"></a>00828     <span class="keywordflow">if</span> (parent == dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>())
<a name="l00829"></a>00829     { <span class="comment">/* the top level */</span>
<a name="l00830"></a>00830         dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>()-&gt;setWidget(spl_new);
<a name="l00831"></a>00831     }
<a name="l00832"></a>00832     <span class="keywordflow">else</span>
<a name="l00833"></a>00833     {
<a name="l00834"></a>00834         QSplitter * spl = <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>(parent);
<a name="l00835"></a>00835         spl-&gt;addWidget(spl_new);
<a name="l00836"></a>00836     }
<a name="l00837"></a>00837 
<a name="l00838"></a>00838     <span class="comment">/* orientation */</span>
<a name="l00839"></a>00839     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a772b43f2e38bd774bf9cfe28fda86c55">XML_TAG_ORIENT</a>);
<a name="l00840"></a>00840     <span class="keywordflow">if</span> (!li_it.isNull())
<a name="l00841"></a>00841     {
<a name="l00842"></a>00842         <span class="keywordflow">if</span> (li_it.text() == <a class="code" href="_e_t_sheet_8h.html#ac75876ace62665da0791fe9f4a138414">XML_O_HORIZ</a>)
<a name="l00843"></a>00843         {
<a name="l00844"></a>00844             spl_new-&gt;setOrientation(Qt::Horizontal);
<a name="l00845"></a>00845         }
<a name="l00846"></a>00846         <span class="keywordflow">else</span> <span class="keywordflow">if</span> (li_it.text() == <a class="code" href="_e_t_sheet_8h.html#aa9104cb7b05d94a9afa460042c464a26">XML_O_VERT</a>)
<a name="l00847"></a>00847         {
<a name="l00848"></a>00848             spl_new-&gt;setOrientation(Qt::Vertical);
<a name="l00849"></a>00849         }
<a name="l00850"></a>00850         <span class="keywordflow">else</span>
<a name="l00851"></a>00851         {
<a name="l00852"></a>00852             qDebug() &lt;&lt; <span class="stringliteral">&quot;Unknown orientation found for splitter: &lt;&quot;</span>
<a name="l00853"></a>00853                      &lt;&lt; li_it.text() &lt;&lt; <span class="stringliteral">&quot;&gt;&quot;</span>;
<a name="l00854"></a>00854         }
<a name="l00855"></a>00855     }
<a name="l00856"></a>00856 
<a name="l00857"></a>00857 
<a name="l00858"></a>00858     <span class="comment">/* components */</span>
<a name="l00859"></a>00859     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#aa0b0532a191d25cc54436c9fe3dfd504">XML_TAG_VP_SPLIT</a>);
<a name="l00860"></a>00860     <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00861"></a>00861     { <span class="comment">/* viewports expected */</span>
<a name="l00862"></a>00862 
<a name="l00863"></a>00863         li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l00864"></a>00864         <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00865"></a>00865         {<span class="comment">/* nothing found */</span>
<a name="l00866"></a>00866             qDebug() &lt;&lt; <span class="stringliteral">&quot;Split element with no components found&quot;</span>;
<a name="l00867"></a>00867             <span class="keywordflow">return</span> spl_new;
<a name="l00868"></a>00868         }
<a name="l00869"></a>00869 
<a name="l00870"></a>00870         <a class="code" href="class_e_t_sheet_view.html#afa4da51c58c53544c286da5c2d1dc2de" title="creates an viewport in specified sheet based on DOM node">loadXMLViewport</a>(dest, spl_new, li_it);
<a name="l00871"></a>00871 
<a name="l00872"></a>00872         li_it = li_it.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l00873"></a>00873         <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00874"></a>00874         { <span class="comment">/* nothing found */</span>
<a name="l00875"></a>00875             qDebug() &lt;&lt; <span class="stringliteral">&quot;Degenerate split element with only one component found&quot;</span>;
<a name="l00876"></a>00876             <span class="keywordflow">return</span> spl_new;
<a name="l00877"></a>00877         }
<a name="l00878"></a>00878 
<a name="l00879"></a>00879         <a class="code" href="class_e_t_sheet_view.html#afa4da51c58c53544c286da5c2d1dc2de" title="creates an viewport in specified sheet based on DOM node">loadXMLViewport</a>(dest, spl_new, li_it);
<a name="l00880"></a>00880 
<a name="l00881"></a>00881     }
<a name="l00882"></a>00882     <span class="keywordflow">else</span>
<a name="l00883"></a>00883     { <span class="comment">/* one split found */</span>
<a name="l00884"></a>00884 
<a name="l00885"></a>00885         <a class="code" href="class_e_t_sheet_view.html#a13132d1d2d26028c5c47258b466c3f55" title="creates an split in specified sheet based on DOM node">loadXMLVpSplit</a>(dest, spl_new, li_it);
<a name="l00886"></a>00886 
<a name="l00887"></a>00887         li_it = li_it.nextSiblingElement(<a class="code" href="_e_t_sheet_8h.html#aa0b0532a191d25cc54436c9fe3dfd504">XML_TAG_VP_SPLIT</a>);
<a name="l00888"></a>00888         <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00889"></a>00889         {<span class="comment">/* viewport expected */</span>
<a name="l00890"></a>00890 
<a name="l00891"></a>00891             li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l00892"></a>00892             <span class="keywordflow">if</span> (li_it.isNull())
<a name="l00893"></a>00893             {<span class="comment">/* nothing found */</span>
<a name="l00894"></a>00894                 qDebug() &lt;&lt; <span class="stringliteral">&quot;Degenerate split element with only one component found&quot;</span>;
<a name="l00895"></a>00895                 <span class="keywordflow">return</span> spl_new;
<a name="l00896"></a>00896             }
<a name="l00897"></a>00897 
<a name="l00898"></a>00898             <a class="code" href="class_e_t_sheet_view.html#afa4da51c58c53544c286da5c2d1dc2de" title="creates an viewport in specified sheet based on DOM node">loadXMLViewport</a>(dest, spl_new, li_it);
<a name="l00899"></a>00899 
<a name="l00900"></a>00900         }
<a name="l00901"></a>00901         <span class="keywordflow">else</span>
<a name="l00902"></a>00902         {<span class="comment">/* second split found */</span>
<a name="l00903"></a>00903             <a class="code" href="class_e_t_sheet_view.html#a13132d1d2d26028c5c47258b466c3f55" title="creates an split in specified sheet based on DOM node">loadXMLVpSplit</a>(dest, spl_new, li_it);
<a name="l00904"></a>00904         }
<a name="l00905"></a>00905     }
<a name="l00906"></a>00906 
<a name="l00907"></a>00907 
<a name="l00908"></a>00908     <span class="comment">/* splitter data */</span>
<a name="l00909"></a>00909     li_it = dom_e.firstChildElement(<a class="code" href="_e_t_sheet_8h.html#a53e53854a567f25ee34dde6aa18c275a">XML_TAG_SPL_DATA</a>);
<a name="l00910"></a>00910     <span class="keywordflow">if</span> (!li_it.isNull())
<a name="l00911"></a>00911     {
<a name="l00912"></a>00912         spl_new-&gt;restoreState(QByteArray::fromHex(li_it.text().toAscii()));
<a name="l00913"></a>00913     }
<a name="l00914"></a>00914 
<a name="l00915"></a>00915 
<a name="l00916"></a>00916     <span class="keywordflow">return</span> spl_new;
<a name="l00917"></a>00917 }
<a name="l00918"></a>00918 <span class="comment">/* ========================================================================= */</span>
<a name="l00919"></a>00919 
<a name="l00920"></a>00920 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00921"></a><a class="code" href="class_e_t_sheet_view.html#ad511334ff3565031a0d64c08ca2a01b7">00921</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#ad511334ff3565031a0d64c08ca2a01b7" title="saves the defining elements of the viewports in a sheet to DOM element">ETSheetView::saveXML</a>            (
<a name="l00922"></a>00922         <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * dest, QDomElement dom_e)
<a name="l00923"></a>00923 {
<a name="l00924"></a>00924 
<a name="l00925"></a>00925     <span class="comment">/* get associated gui object */</span>
<a name="l00926"></a>00926     <a class="code" href="class_mdi_child.html" title="form representing a document inside MDI area">MdiChild</a> * mdi_s = dest-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>();
<a name="l00927"></a>00927     <span class="keywordflow">if</span> (mdi_s == <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00928"></a>00928     {
<a name="l00929"></a>00929         <span class="comment">/* this sheet is only loaded but not shown */</span>
<a name="l00930"></a>00930         <span class="keywordflow">return</span>;
<a name="l00931"></a>00931     }
<a name="l00932"></a>00932 
<a name="l00933"></a>00933 
<a name="l00934"></a>00934     <span class="comment">/* get the top element (viewport / splitter */</span>
<a name="l00935"></a>00935     <span class="keywordtype">bool</span> b_top_is_vp;
<a name="l00936"></a>00936     QWidget * top_it = dest-&gt;<a class="code" href="class_e_t_sheet.html#ac7cc9b89ecb5a36a9c7a6c3a7febeed7" title="gets the top vidget and tells if it&#39;s a viewport or splitter">vp_TopWidget</a>(&amp;b_top_is_vp);
<a name="l00937"></a>00937     <span class="keywordflow">if</span> (top_it == <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l00938"></a>00938     {
<a name="l00939"></a>00939         <span class="comment">/* failure of the code */</span>
<a name="l00940"></a>00940         qDebug() &lt;&lt; <span class="stringliteral">&quot; The saving of the viewports failed because &quot;</span>
<a name="l00941"></a>00941                  &lt;&lt; <span class="stringliteral">&quot;top level widget could not be retrieved.&quot;</span>;
<a name="l00942"></a>00942         <span class="keywordflow">return</span>;
<a name="l00943"></a>00943     }
<a name="l00944"></a>00944 
<a name="l00945"></a>00945 
<a name="l00946"></a>00946     <span class="comment">/* see if this is an entire tree or just a single item */</span>
<a name="l00947"></a>00947     <span class="keywordflow">if</span> (b_top_is_vp)
<a name="l00948"></a>00948     { <span class="comment">/* just a viewport */</span>
<a name="l00949"></a>00949         QDomElement dom_it = dom_e.ownerDocument()
<a name="l00950"></a>00950                 .createElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l00951"></a>00951         dom_e.appendChild(dom_it);
<a name="l00952"></a>00952 
<a name="l00953"></a>00953         <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * vp = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> *<span class="keyword">&gt;</span>(top_it);
<a name="l00954"></a>00954         vp-&gt;<a class="code" href="class_e_t_sheet_view.html#a2dc2eb77d89287676250a729ebaea265" title="saves current viewport in provided DOM element">saveXMLViewport</a>(dest, dom_it);
<a name="l00955"></a>00955     }
<a name="l00956"></a>00956     <span class="keywordflow">else</span>
<a name="l00957"></a>00957     { <span class="comment">/* a tree; provided element is a splitter */</span>
<a name="l00958"></a>00958         QDomElement dom_it = dom_e.ownerDocument()
<a name="l00959"></a>00959                 .createElement(<a class="code" href="_e_t_sheet_8h.html#aa0b0532a191d25cc54436c9fe3dfd504">XML_TAG_VP_SPLIT</a>);
<a name="l00960"></a>00960         dom_e.appendChild(dom_it);
<a name="l00961"></a>00961 
<a name="l00962"></a>00962         QSplitter * spl = <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>(top_it);
<a name="l00963"></a>00963         <a class="code" href="class_e_t_sheet_view.html#ad0fbdb6a6248621e6feb1bdd6a6318bf" title="saves the split and all it&#39;s kids in provided DOM element">saveXMLVpSplit</a>(dest, spl, dom_it);
<a name="l00964"></a>00964     }
<a name="l00965"></a>00965 }
<a name="l00966"></a>00966 <span class="comment">/* ========================================================================= */</span>
<a name="l00967"></a>00967 
<a name="l00968"></a>00968 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l00969"></a><a class="code" href="class_e_t_sheet_view.html#a2dc2eb77d89287676250a729ebaea265">00969</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#a2dc2eb77d89287676250a729ebaea265" title="saves current viewport in provided DOM element">ETSheetView::saveXMLViewport</a>        (
<a name="l00970"></a>00970         <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * dest, QDomElement dom_e )<span class="keyword"> const</span>
<a name="l00971"></a>00971 <span class="keyword"></span>{
<a name="l00972"></a>00972     Q_UNUSED(dest);
<a name="l00973"></a>00973 
<a name="l00974"></a>00974     QDomElement dom_it;
<a name="l00975"></a>00975     QDomElement dom_sit;
<a name="l00976"></a>00976     QDomText    dom_tx;
<a name="l00977"></a>00977     QTransform  vp_t = viewportTransform();
<a name="l00978"></a>00978 
<a name="l00979"></a>00979 
<a name="l00980"></a>00980     <span class="comment">/* save the translation */</span>
<a name="l00981"></a>00981     dom_it = dom_e.ownerDocument()
<a name="l00982"></a>00982             .createElement(<a class="code" href="_e_t_sheet_8h.html#a0189f98ee9290e6e1ba89f93cb0ab0ad">XML_TAG_TRANSL</a>);
<a name="l00983"></a>00983     dom_e.appendChild(dom_it);
<a name="l00984"></a>00984     <span class="comment">/*    X */</span>
<a name="l00985"></a>00985     dom_sit = dom_e.ownerDocument()
<a name="l00986"></a>00986             .createElement(<a class="code" href="_e_t_sheet_8h.html#af0866489c168e1899095869e1dafe62f">XML_TAG_X</a>);
<a name="l00987"></a>00987     dom_it.appendChild(dom_sit);
<a name="l00988"></a>00988     dom_tx = dom_e.ownerDocument()
<a name="l00989"></a>00989             .createTextNode(QString(<span class="stringliteral">&quot;%1&quot;</span>).arg(vp_t.dx()));
<a name="l00990"></a>00990     dom_sit.appendChild(dom_tx);
<a name="l00991"></a>00991     <span class="comment">/*    Y */</span>
<a name="l00992"></a>00992     dom_sit = dom_e.ownerDocument()
<a name="l00993"></a>00993             .createElement(<a class="code" href="_e_t_sheet_8h.html#ae93bce2d4f2bf25161520d842ca1cb2b">XML_TAG_Y</a>);
<a name="l00994"></a>00994     dom_it.appendChild(dom_sit);
<a name="l00995"></a>00995     dom_tx = dom_e.ownerDocument()
<a name="l00996"></a>00996             .createTextNode(QString(<span class="stringliteral">&quot;%1&quot;</span>).arg(vp_t.dy()));
<a name="l00997"></a>00997     dom_sit.appendChild(dom_tx);
<a name="l00998"></a>00998 
<a name="l00999"></a>00999 
<a name="l01000"></a>01000     <span class="comment">/* save the rotation */</span>
<a name="l01001"></a>01001     dom_it = dom_e.ownerDocument()
<a name="l01002"></a>01002             .createElement(<a class="code" href="_e_t_sheet_8h.html#aed9ff3467f108d2801b9c104a456af2b">XML_TAG_ROT</a>);
<a name="l01003"></a>01003     dom_e.appendChild(dom_it);
<a name="l01004"></a>01004     dom_tx = dom_e.ownerDocument()
<a name="l01005"></a>01005             .createTextNode(QString(<span class="stringliteral">&quot;%1&quot;</span>).arg(<a class="code" href="class_e_t_sheet_view.html#ae5f4709acc5b13182abb58f81bad6ae3" title="cache current rotation angle for simplicity">rot_ang_to_s</a>));
<a name="l01006"></a>01006     dom_it.appendChild(dom_tx);
<a name="l01007"></a>01007 
<a name="l01008"></a>01008 
<a name="l01009"></a>01009     <span class="comment">/* save the scale */</span>
<a name="l01010"></a>01010     dom_it = dom_e.ownerDocument()
<a name="l01011"></a>01011             .createElement(<a class="code" href="_e_t_sheet_8h.html#aa90e049cac810d38d59e5f569304a936">XML_TAG_SCALE</a>);
<a name="l01012"></a>01012     dom_e.appendChild(dom_it);
<a name="l01013"></a>01013     dom_tx = dom_e.ownerDocument()
<a name="l01014"></a>01014             .createTextNode(QString(<span class="stringliteral">&quot;%1&quot;</span>).arg(<a class="code" href="class_e_t_sheet_view.html#a0a48b30df2d2cbf0d6bdea2ce12a63c8" title="cache current scale for simplicity">scale_to_s</a>));
<a name="l01015"></a>01015     dom_it.appendChild(dom_tx);
<a name="l01016"></a>01016 
<a name="l01017"></a>01017 
<a name="l01018"></a>01018     <span class="comment">/* if it&#39;s the active one, mark it as such */</span>
<a name="l01019"></a>01019     <span class="keywordflow">if</span> (dest-&gt;<a class="code" href="class_e_t_sheet.html#a7f91174cc0e5fcc88ab8b9373dfdc370" title="tell which is current viewport (should never be null)">currentVP</a>() == <span class="keyword">this</span>)
<a name="l01020"></a>01020     {
<a name="l01021"></a>01021         dom_it = dom_e.ownerDocument()
<a name="l01022"></a>01022                 .createElement(<a class="code" href="_e_t_sheet_8h.html#a093464e128c9ff17a174d08c9187299b">XML_TAG_ACTIVE</a>);
<a name="l01023"></a>01023         dom_e.appendChild(dom_it);
<a name="l01024"></a>01024     }
<a name="l01025"></a>01025 
<a name="l01026"></a>01026 
<a name="l01027"></a>01027 }
<a name="l01028"></a>01028 <span class="comment">/* ========================================================================= */</span>
<a name="l01029"></a>01029 
<a name="l01030"></a>01030 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01031"></a><a class="code" href="class_e_t_sheet_view.html#ad0fbdb6a6248621e6feb1bdd6a6318bf">01031</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#ad0fbdb6a6248621e6feb1bdd6a6318bf" title="saves the split and all it&#39;s kids in provided DOM element">ETSheetView::saveXMLVpSplit</a>         (
<a name="l01032"></a>01032         <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * dest, <span class="keyword">const</span> QSplitter * spl, QDomElement dom_e )
<a name="l01033"></a>01033 {
<a name="l01034"></a>01034     QDomElement dom_it;
<a name="l01035"></a>01035     QDomText    dom_tx;
<a name="l01036"></a>01036 
<a name="l01037"></a>01037     <span class="comment">/* save the orientation */</span>
<a name="l01038"></a>01038     dom_it = dom_e.ownerDocument()
<a name="l01039"></a>01039             .createElement(<a class="code" href="_e_t_sheet_8h.html#a772b43f2e38bd774bf9cfe28fda86c55">XML_TAG_ORIENT</a>);
<a name="l01040"></a>01040     dom_e.appendChild(dom_it);
<a name="l01041"></a>01041     <span class="keywordflow">if</span> (spl-&gt;orientation() == Qt::Horizontal)
<a name="l01042"></a>01042     {
<a name="l01043"></a>01043         dom_tx = dom_e.ownerDocument()
<a name="l01044"></a>01044                 .createTextNode(<a class="code" href="_e_t_sheet_8h.html#ac75876ace62665da0791fe9f4a138414">XML_O_HORIZ</a>);
<a name="l01045"></a>01045     }
<a name="l01046"></a>01046     <span class="keywordflow">else</span>
<a name="l01047"></a>01047     {
<a name="l01048"></a>01048         dom_tx = dom_e.ownerDocument()
<a name="l01049"></a>01049                 .createTextNode(<a class="code" href="_e_t_sheet_8h.html#aa9104cb7b05d94a9afa460042c464a26">XML_O_VERT</a>);
<a name="l01050"></a>01050     }
<a name="l01051"></a>01051     dom_it.appendChild(dom_tx);
<a name="l01052"></a>01052 
<a name="l01053"></a>01053 
<a name="l01054"></a>01054     <span class="comment">/* splitter data */</span>
<a name="l01055"></a>01055     dom_it = dom_e.ownerDocument()
<a name="l01056"></a>01056             .createElement(<a class="code" href="_e_t_sheet_8h.html#a53e53854a567f25ee34dde6aa18c275a">XML_TAG_SPL_DATA</a>);
<a name="l01057"></a>01057     dom_e.appendChild(dom_it);
<a name="l01058"></a>01058 
<a name="l01059"></a>01059     dom_tx = dom_e.ownerDocument()
<a name="l01060"></a>01060             .createTextNode(spl-&gt;saveState().toHex());
<a name="l01061"></a>01061 
<a name="l01062"></a>01062     dom_it.appendChild(dom_tx);
<a name="l01063"></a>01063 
<a name="l01064"></a>01064 
<a name="l01065"></a>01065 
<a name="l01066"></a>01066 
<a name="l01067"></a>01067     <span class="comment">/* get the data about the components of this split */</span>
<a name="l01068"></a>01068     <a class="code" href="struct_e_t_sheet_view_1_1_split_data.html" title="structure grouping data about one split and it&#39;s content">SplitData</a>   spl_d;
<a name="l01069"></a>01069     <a class="code" href="class_e_t_sheet_view.html#aafba8a2401e193774e9a426209c60d0b" title="gets info about the content of a split">vp_SplitKids</a>(spl, &amp;spl_d);
<a name="l01070"></a>01070 
<a name="l01071"></a>01071     <span class="comment">/* if there&#39;s no first, there are none */</span>
<a name="l01072"></a>01072     <span class="keywordflow">if</span> (spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a> == <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l01073"></a>01073         <span class="keywordflow">return</span>;
<a name="l01074"></a>01074 
<a name="l01075"></a>01075 
<a name="l01076"></a>01076 <span class="comment">//  if (spl-&gt;orientation() == Qt::Horizontal)</span>
<a name="l01077"></a>01077 <span class="comment">//  {</span>
<a name="l01078"></a>01078 
<a name="l01079"></a>01079 <span class="comment">//      /* save first */</span>
<a name="l01080"></a>01080 <span class="comment">//      if (spl_d.first.b_is_vp)</span>
<a name="l01081"></a>01081 <span class="comment">//      {</span>
<a name="l01082"></a>01082 <span class="comment">//          dom_it = dom_e.ownerDocument()</span>
<a name="l01083"></a>01083 <span class="comment">//                  .createElement(XML_TAG_VP);</span>
<a name="l01084"></a>01084 <span class="comment">//          dom_e.appendChild(dom_it);</span>
<a name="l01085"></a>01085 <span class="comment">//          spl_d.first.comp.vp-&gt;saveXMLViewport(dest, dom_it);</span>
<a name="l01086"></a>01086 <span class="comment">//      }</span>
<a name="l01087"></a>01087 <span class="comment">//      else</span>
<a name="l01088"></a>01088 <span class="comment">//      {</span>
<a name="l01089"></a>01089 <span class="comment">//          dom_it = dom_e.ownerDocument()</span>
<a name="l01090"></a>01090 <span class="comment">//                  .createElement(XML_TAG_VP_SPLIT);</span>
<a name="l01091"></a>01091 <span class="comment">//          dom_e.appendChild(dom_it);</span>
<a name="l01092"></a>01092 <span class="comment">//          saveXMLVpSplit(dest,spl_d.first.comp.split, dom_it);</span>
<a name="l01093"></a>01093 <span class="comment">//      }</span>
<a name="l01094"></a>01094 
<a name="l01095"></a>01095 <span class="comment">//      /* save second */</span>
<a name="l01096"></a>01096 <span class="comment">//      if (spl_d.sec.b_is_vp)</span>
<a name="l01097"></a>01097 <span class="comment">//      {</span>
<a name="l01098"></a>01098 <span class="comment">//          dom_it = dom_e.ownerDocument()</span>
<a name="l01099"></a>01099 <span class="comment">//                  .createElement(XML_TAG_VP);</span>
<a name="l01100"></a>01100 <span class="comment">//          dom_e.appendChild(dom_it);</span>
<a name="l01101"></a>01101 <span class="comment">//          spl_d.sec.comp.vp-&gt;saveXMLViewport(dest, dom_it);</span>
<a name="l01102"></a>01102 <span class="comment">//      }</span>
<a name="l01103"></a>01103 <span class="comment">//      else</span>
<a name="l01104"></a>01104 <span class="comment">//      {</span>
<a name="l01105"></a>01105 <span class="comment">//          dom_it = dom_e.ownerDocument()</span>
<a name="l01106"></a>01106 <span class="comment">//                  .createElement(XML_TAG_VP_SPLIT);</span>
<a name="l01107"></a>01107 <span class="comment">//          dom_e.appendChild(dom_it);</span>
<a name="l01108"></a>01108 <span class="comment">//          saveXMLVpSplit(dest,spl_d.sec.comp.split, dom_it);</span>
<a name="l01109"></a>01109 <span class="comment">//      }</span>
<a name="l01110"></a>01110 
<a name="l01111"></a>01111 <span class="comment">//  }</span>
<a name="l01112"></a>01112 <span class="comment">//  else</span>
<a name="l01113"></a>01113 <span class="comment">//  {</span>
<a name="l01114"></a>01114 
<a name="l01115"></a>01115         <span class="comment">/* save second */</span>
<a name="l01116"></a>01116         <span class="keywordflow">if</span> (spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#aaa703353aed1fb271c1ebeb88738fa87">b_is_vp</a>)
<a name="l01117"></a>01117         {
<a name="l01118"></a>01118             dom_it = dom_e.ownerDocument()
<a name="l01119"></a>01119                     .createElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l01120"></a>01120             dom_e.appendChild(dom_it);
<a name="l01121"></a>01121             spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a>-&gt;<a class="code" href="class_e_t_sheet_view.html#a2dc2eb77d89287676250a729ebaea265" title="saves current viewport in provided DOM element">saveXMLViewport</a>(dest, dom_it);
<a name="l01122"></a>01122         }
<a name="l01123"></a>01123         <span class="keywordflow">else</span>
<a name="l01124"></a>01124         {
<a name="l01125"></a>01125             dom_it = dom_e.ownerDocument()
<a name="l01126"></a>01126                     .createElement(<a class="code" href="_e_t_sheet_8h.html#aa0b0532a191d25cc54436c9fe3dfd504">XML_TAG_VP_SPLIT</a>);
<a name="l01127"></a>01127             dom_e.appendChild(dom_it);
<a name="l01128"></a>01128             <a class="code" href="class_e_t_sheet_view.html#ad0fbdb6a6248621e6feb1bdd6a6318bf" title="saves the split and all it&#39;s kids in provided DOM element">saveXMLVpSplit</a>(dest,spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#ac7799fa85a157eec711779dc88b69184">split</a>, dom_it);
<a name="l01129"></a>01129         }
<a name="l01130"></a>01130 
<a name="l01131"></a>01131         <span class="comment">/* save first */</span>
<a name="l01132"></a>01132         <span class="keywordflow">if</span> (spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#aaa703353aed1fb271c1ebeb88738fa87">b_is_vp</a>)
<a name="l01133"></a>01133         {
<a name="l01134"></a>01134             dom_it = dom_e.ownerDocument()
<a name="l01135"></a>01135                     .createElement(<a class="code" href="_e_t_sheet_8h.html#a0ce2bed7b21c36ed370745648668b774">XML_TAG_VP</a>);
<a name="l01136"></a>01136             dom_e.appendChild(dom_it);
<a name="l01137"></a>01137             spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a>-&gt;<a class="code" href="class_e_t_sheet_view.html#a2dc2eb77d89287676250a729ebaea265" title="saves current viewport in provided DOM element">saveXMLViewport</a>(dest, dom_it);
<a name="l01138"></a>01138         }
<a name="l01139"></a>01139         <span class="keywordflow">else</span>
<a name="l01140"></a>01140         {
<a name="l01141"></a>01141             dom_it = dom_e.ownerDocument()
<a name="l01142"></a>01142                     .createElement(<a class="code" href="_e_t_sheet_8h.html#aa0b0532a191d25cc54436c9fe3dfd504">XML_TAG_VP_SPLIT</a>);
<a name="l01143"></a>01143             dom_e.appendChild(dom_it);
<a name="l01144"></a>01144             <a class="code" href="class_e_t_sheet_view.html#ad0fbdb6a6248621e6feb1bdd6a6318bf" title="saves the split and all it&#39;s kids in provided DOM element">saveXMLVpSplit</a>(dest,spl_d.<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#ac7799fa85a157eec711779dc88b69184">split</a>, dom_it);
<a name="l01145"></a>01145         }
<a name="l01146"></a>01146 
<a name="l01147"></a>01147 <span class="comment">//  }</span>
<a name="l01148"></a>01148 }
<a name="l01149"></a>01149 <span class="comment">/* ========================================================================= */</span>
<a name="l01150"></a>01150 
<a name="l01151"></a>01151 
<a name="l01152"></a>01152 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01153"></a><a class="code" href="class_e_t_sheet_view.html#ad5252ec7dc3018260e22cb69e3a00c0d">01153</a> <span class="keywordtype">void</span>                <a class="code" href="class_e_t_sheet_view.html#ad5252ec7dc3018260e22cb69e3a00c0d" title="create a top level split in associated MDI">ETSheetView::ivp_SplitTopL</a>      (
<a name="l01154"></a>01154         <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * vp_loc, <a class="code" href="class_mdi_child.html" title="form representing a document inside MDI area">MdiChild</a> * parent, Qt::Orientation orient)
<a name="l01155"></a>01155 {
<a name="l01156"></a>01156     <span class="comment">/* it is assumed that current tree only contains one item (there is one</span>
<a name="l01157"></a>01157 <span class="comment">   viewport in the MDI and that viewport is pointed by vp_loc */</span>
<a name="l01158"></a>01158 
<a name="l01159"></a>01159     <span class="comment">/* have a new splitter of proper orientation */</span>
<a name="l01160"></a>01160     QSplitter *  new_spl = <span class="keyword">new</span> QSplitter(parent);
<a name="l01161"></a>01161     new_spl-&gt;setOrientation(orient);
<a name="l01162"></a>01162 
<a name="l01163"></a>01163     <span class="comment">/* reparent the existing viewport */</span>
<a name="l01164"></a>01164     vp_loc-&gt;setParent(new_spl);
<a name="l01165"></a>01165     parent-&gt;setWidget(new_spl);
<a name="l01166"></a>01166     new_spl-&gt;addWidget(vp_loc);
<a name="l01167"></a>01167     vp_loc-&gt;show();
<a name="l01168"></a>01168 
<a name="l01169"></a>01169     <span class="comment">/* create a clone of this viewport */</span>
<a name="l01170"></a>01170     <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * duplic = <span class="keyword">new</span> <a class="code" href="class_e_t_sheet_view.html#af4f9608ab11edd65c3b1a1f532dbcf4f" title="constructor;">ETSheetView</a>(
<a name="l01171"></a>01171                 static_cast&lt;ETSheet *&gt;(vp_loc-&gt;scene()),
<a name="l01172"></a>01172                 new_spl);
<a name="l01173"></a>01173     duplic-&gt;show();
<a name="l01174"></a>01174     duplic-&gt;setTransform(vp_loc-&gt;transform());
<a name="l01175"></a>01175 
<a name="l01176"></a>01176     <span class="comment">/* let the two viewports use equal ammounts of space */</span>
<a name="l01177"></a>01177     QList&lt;int&gt; sz_l;
<a name="l01178"></a>01178     sz_l.append(1);
<a name="l01179"></a>01179     sz_l.append(1);
<a name="l01180"></a>01180     new_spl-&gt;setSizes(sz_l);
<a name="l01181"></a>01181 
<a name="l01182"></a>01182 }
<a name="l01183"></a>01183 <span class="comment">/* ========================================================================= */</span>
<a name="l01184"></a>01184 
<a name="l01185"></a>01185 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01186"></a><a class="code" href="class_e_t_sheet_view.html#a1cfccfa0d6dec40525c6e44363438ec1">01186</a> <span class="keywordtype">void</span>                <a class="code" href="class_e_t_sheet_view.html#a1cfccfa0d6dec40525c6e44363438ec1" title="create a child split in associated MDI">ETSheetView::ivp_SplitSplKid</a>    (
<a name="l01187"></a>01187         <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * vp_loc, QWidget * parent, Qt::Orientation orient)
<a name="l01188"></a>01188 {
<a name="l01189"></a>01189 
<a name="l01190"></a>01190     <span class="comment">/* it is assumed that current tree contains more than one item (there is</span>
<a name="l01191"></a>01191 <span class="comment">   at least one split in the MDI */</span>
<a name="l01192"></a>01192 
<a name="l01193"></a>01193     <span class="comment">/* preserve aspect ratio across opperation for original splitter */</span>
<a name="l01194"></a>01194     QSplitter *  old_spl = <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>(parent);
<a name="l01195"></a>01195     QList&lt;int&gt; sz_l = old_spl-&gt;sizes();
<a name="l01196"></a>01196 
<a name="l01197"></a>01197     <span class="comment">/* create a new splitter with proper orientation */</span>
<a name="l01198"></a>01198     QSplitter *  new_spl = <span class="keyword">new</span> QSplitter(old_spl);
<a name="l01199"></a>01199     new_spl-&gt;setOrientation(orient);
<a name="l01200"></a>01200 
<a name="l01201"></a>01201     <span class="keywordflow">if</span> (old_spl-&gt;widget(0) == vp_loc)
<a name="l01202"></a>01202     { <span class="comment">/* the viewport is in first slot, so we have to reorder */</span>
<a name="l01203"></a>01203         vp_loc-&gt;setParent(new_spl);
<a name="l01204"></a>01204         old_spl-&gt;addWidget(new_spl);
<a name="l01205"></a>01205         old_spl-&gt;addWidget(old_spl-&gt;widget(0));
<a name="l01206"></a>01206     }
<a name="l01207"></a>01207     <span class="keywordflow">else</span>
<a name="l01208"></a>01208     {
<a name="l01209"></a>01209         vp_loc-&gt;setParent(new_spl);
<a name="l01210"></a>01210         old_spl-&gt;addWidget(new_spl);
<a name="l01211"></a>01211     }
<a name="l01212"></a>01212     new_spl-&gt;addWidget(vp_loc);
<a name="l01213"></a>01213     vp_loc-&gt;show();
<a name="l01214"></a>01214 
<a name="l01215"></a>01215     <span class="comment">/* create a clone of current viewport */</span>
<a name="l01216"></a>01216     <a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> * duplic = <span class="keyword">new</span> <a class="code" href="class_e_t_sheet_view.html#af4f9608ab11edd65c3b1a1f532dbcf4f" title="constructor;">ETSheetView</a>(
<a name="l01217"></a>01217                 static_cast&lt;ETSheet *&gt;(vp_loc-&gt;scene()),
<a name="l01218"></a>01218                 new_spl);
<a name="l01219"></a>01219     duplic-&gt;show();
<a name="l01220"></a>01220     duplic-&gt;setTransform(vp_loc-&gt;transform());
<a name="l01221"></a>01221 
<a name="l01222"></a>01222     <span class="comment">/* restore aspect ratio for original splitter */</span>
<a name="l01223"></a>01223     old_spl-&gt;setSizes(sz_l);
<a name="l01224"></a>01224 
<a name="l01225"></a>01225     <span class="comment">/* let the two viewports use equal ammounts of space */</span>
<a name="l01226"></a>01226     sz_l.clear();
<a name="l01227"></a>01227     sz_l.append(1);
<a name="l01228"></a>01228     sz_l.append(1);
<a name="l01229"></a>01229     new_spl-&gt;setSizes(sz_l);
<a name="l01230"></a>01230 }
<a name="l01231"></a>01231 <span class="comment">/* ========================================================================= */</span>
<a name="l01232"></a>01232 
<a name="l01233"></a>01233 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01234"></a><a class="code" href="class_e_t_sheet_view.html#add32836df095aa4250ffe2fa033a42ee">01234</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#add32836df095aa4250ffe2fa033a42ee" title="Splits current viewport in two horizontal viewports.">ETSheetView::splitH</a>          ( <span class="keywordtype">void</span> )
<a name="l01235"></a>01235 {
<a name="l01236"></a>01236     QWidget * parent = parentWidget();
<a name="l01237"></a>01237     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * <span class="keyword">&gt;</span>(scene());
<a name="l01238"></a>01238     <span class="keywordflow">if</span> (parent == sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>())
<a name="l01239"></a>01239     { <span class="comment">/* top level */</span>
<a name="l01240"></a>01240         <a class="code" href="class_e_t_sheet_view.html#ad5252ec7dc3018260e22cb69e3a00c0d" title="create a top level split in associated MDI">ivp_SplitTopL</a>(<span class="keyword">this</span>, sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>(), Qt::Vertical);
<a name="l01241"></a>01241     }
<a name="l01242"></a>01242     <span class="keywordflow">else</span>
<a name="l01243"></a>01243     {
<a name="l01244"></a>01244         <a class="code" href="class_e_t_sheet_view.html#a1cfccfa0d6dec40525c6e44363438ec1" title="create a child split in associated MDI">ivp_SplitSplKid</a>(<span class="keyword">this</span>, parent, Qt::Vertical);
<a name="l01245"></a>01245     }
<a name="l01246"></a>01246 }
<a name="l01247"></a>01247 <span class="comment">/* ========================================================================= */</span>
<a name="l01248"></a>01248 
<a name="l01249"></a>01249 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01250"></a><a class="code" href="class_e_t_sheet_view.html#a6d9e4234493881260d619789f9186719">01250</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#a6d9e4234493881260d619789f9186719" title="Splits current viewport in two vertical viewports.">ETSheetView::splitV</a>          ( <span class="keywordtype">void</span> )
<a name="l01251"></a>01251 {
<a name="l01252"></a>01252     QWidget * parent = parentWidget();
<a name="l01253"></a>01253     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * <span class="keyword">&gt;</span>(scene());
<a name="l01254"></a>01254     <span class="keywordflow">if</span> (parent == sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>())
<a name="l01255"></a>01255     { <span class="comment">/* top level */</span>
<a name="l01256"></a>01256         <a class="code" href="class_e_t_sheet_view.html#ad5252ec7dc3018260e22cb69e3a00c0d" title="create a top level split in associated MDI">ivp_SplitTopL</a>(<span class="keyword">this</span>, sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>(), Qt::Horizontal);
<a name="l01257"></a>01257     }
<a name="l01258"></a>01258     <span class="keywordflow">else</span>
<a name="l01259"></a>01259     {
<a name="l01260"></a>01260         <a class="code" href="class_e_t_sheet_view.html#a1cfccfa0d6dec40525c6e44363438ec1" title="create a child split in associated MDI">ivp_SplitSplKid</a>(<span class="keyword">this</span>, parent, Qt::Horizontal);
<a name="l01261"></a>01261     }
<a name="l01262"></a>01262 }
<a name="l01263"></a>01263 <span class="comment">/* ========================================================================= */</span>
<a name="l01264"></a>01264 
<a name="l01265"></a>01265 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01266"></a><a class="code" href="class_e_t_sheet_view.html#aeb3e8751e2cae148b3943a34cd2a8eb2">01266</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#aeb3e8751e2cae148b3943a34cd2a8eb2" title="Toogles the orientation of the split between horizontal and vertical.">ETSheetView::splitTgl</a>        ( <span class="keywordtype">void</span> )
<a name="l01267"></a>01267 {
<a name="l01268"></a>01268     QWidget * parent = parentWidget();
<a name="l01269"></a>01269     <span class="keywordflow">if</span> (parent == <span class="keyword">this</span>)
<a name="l01270"></a>01270     { <span class="comment">/* top level */</span>
<a name="l01271"></a>01271         QMessageBox::warning(<span class="keyword">this</span>, tr(<span class="stringliteral">&quot;Error&quot;</span>),
<a name="l01272"></a>01272                              tr(<span class="stringliteral">&quot;No split to work with&quot;</span>));
<a name="l01273"></a>01273         <span class="keywordflow">return</span>;
<a name="l01274"></a>01274     }
<a name="l01275"></a>01275     QSplitter *  old_spl = <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>(parent);
<a name="l01276"></a>01276     <span class="keywordflow">if</span> (old_spl-&gt;orientation() == Qt::Horizontal)
<a name="l01277"></a>01277         old_spl-&gt;setOrientation(Qt::Vertical);
<a name="l01278"></a>01278     <span class="keywordflow">else</span>
<a name="l01279"></a>01279         old_spl-&gt;setOrientation(Qt::Horizontal);
<a name="l01280"></a>01280 }
<a name="l01281"></a>01281 <span class="comment">/* ========================================================================= */</span>
<a name="l01282"></a>01282 
<a name="l01283"></a>01283 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01284"></a><a class="code" href="class_e_t_sheet_view.html#a55de5e8d7506de62f30a9ec02ec473bf">01284</a> <span class="keywordtype">void</span>            <a class="code" href="class_e_t_sheet_view.html#a55de5e8d7506de62f30a9ec02ec473bf" title="Splitted viewports are rejoined.">ETSheetView::rejoinVP</a>            ( <span class="keywordtype">void</span> )
<a name="l01285"></a>01285 {
<a name="l01286"></a>01286     QWidget * parent = parentWidget();
<a name="l01287"></a>01287     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * <span class="keyword">&gt;</span>(scene());
<a name="l01288"></a>01288     <span class="keywordflow">if</span> (parent == sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>())
<a name="l01289"></a>01289     { <span class="comment">/* top level */</span>
<a name="l01290"></a>01290         QMessageBox::warning(sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>(), tr(<span class="stringliteral">&quot;Error&quot;</span>),
<a name="l01291"></a>01291                              tr(<span class="stringliteral">&quot;No split to delete&quot;</span>));
<a name="l01292"></a>01292         <span class="keywordflow">return</span>;
<a name="l01293"></a>01293     }
<a name="l01294"></a>01294     QSplitter *  old_spl = <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>(parent);
<a name="l01295"></a>01295     <span class="keywordflow">if</span> (old_spl-&gt;parentWidget() == sht-&gt;<a class="code" href="class_e_t_sheet.html#a2ba087cbdd9779858aaa5dfea502b817" title="get associated mdi window (NULL if none)">assocMDI</a>())
<a name="l01296"></a>01296     {
<a name="l01297"></a>01297         sht-&gt;<a class="code" href="class_e_t_sheet.html#a4b9c76466085e8de5a98ba880c81b82e" title="Remove all splits; Only a viewport remains.">vp_DelAll</a>();
<a name="l01298"></a>01298     }
<a name="l01299"></a>01299     <span class="keywordflow">else</span>
<a name="l01300"></a>01300     {
<a name="l01301"></a>01301         QSplitter *  oldold_spl =
<a name="l01302"></a>01302                 <span class="keyword">static_cast&lt;</span>QSplitter *<span class="keyword">&gt;</span>
<a name="l01303"></a>01303                 (old_spl-&gt;parentWidget());
<a name="l01304"></a>01304         QList&lt;int&gt; sz_l = old_spl-&gt;sizes();
<a name="l01305"></a>01305         <span class="keywordtype">bool</span> need_shift = (oldold_spl-&gt;widget(0) == old_spl);
<a name="l01306"></a>01306         setParent(oldold_spl);
<a name="l01307"></a>01307         old_spl-&gt;close();
<a name="l01308"></a>01308         old_spl-&gt;deleteLater();
<a name="l01309"></a>01309         oldold_spl-&gt;addWidget(<span class="keyword">this</span>);
<a name="l01310"></a>01310         <span class="keywordflow">if</span> (need_shift)
<a name="l01311"></a>01311         {
<a name="l01312"></a>01312             oldold_spl-&gt;addWidget(oldold_spl-&gt;widget(0));
<a name="l01313"></a>01313         }
<a name="l01314"></a>01314         show();
<a name="l01315"></a>01315         oldold_spl-&gt;setSizes(sz_l);
<a name="l01316"></a>01316         sht-&gt;<a class="code" href="class_e_t_sheet.html#a268f805202701c67e7334201965bf4c3" title="tell which is current viewport (should never be null)">setCurrentVp</a>(<span class="keyword">this</span>);
<a name="l01317"></a>01317     }
<a name="l01318"></a>01318 }
<a name="l01319"></a>01319 <span class="comment">/* ========================================================================= */</span>
<a name="l01320"></a>01320 
<a name="l01321"></a>01321 
<a name="l01322"></a>01322 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01323"></a><a class="code" href="class_e_t_sheet_view.html#aafba8a2401e193774e9a426209c60d0b">01323</a> <span class="keywordtype">void</span>                <a class="code" href="class_e_t_sheet_view.html#aafba8a2401e193774e9a426209c60d0b" title="gets info about the content of a split">ETSheetView::vp_SplitKids</a>           (<span class="keyword">const</span> QWidget * parent, <a class="code" href="struct_e_t_sheet_view_1_1_split_data.html" title="structure grouping data about one split and it&#39;s content">SplitData</a> * sd)
<a name="l01324"></a>01324 {
<a name="l01325"></a>01325 
<a name="l01326"></a>01326     <span class="keyword">const</span> QObjectList list = parent-&gt;children();
<a name="l01327"></a>01327     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a> = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l01328"></a>01328     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a> = <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;
<a name="l01329"></a>01329     <span class="keywordtype">bool</span> b_1 = <span class="keyword">false</span>;
<a name="l01330"></a>01330     <span class="keywordflow">foreach</span> (<span class="keyword">const</span> QObject * l_it, list)
<a name="l01331"></a>01331     {
<a name="l01332"></a>01332         <span class="keywordflow">if</span> (l_it-&gt;isWidgetType())
<a name="l01333"></a>01333         {
<a name="l01334"></a>01334             <span class="keyword">const</span> QGraphicsView * l_it_v = qobject_cast&lt;<span class="keyword">const</span> QGraphicsView *&gt;(l_it);
<a name="l01335"></a>01335             <span class="keyword">const</span> QSplitter * l_it_s = qobject_cast&lt;<span class="keyword">const</span> QSplitter *&gt;(l_it);
<a name="l01336"></a>01336             <span class="keywordflow">if</span> (b_1)
<a name="l01337"></a>01337             {
<a name="l01338"></a>01338                 <span class="keywordflow">if</span> (l_it_v != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l01339"></a>01339                 {
<a name="l01340"></a>01340                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a> = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> *<span class="keyword">&gt;</span>(l_it_v);
<a name="l01341"></a>01341                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#aaa703353aed1fb271c1ebeb88738fa87">b_is_vp</a> = <span class="keyword">true</span>;
<a name="l01342"></a>01342                     <span class="keywordflow">return</span>;
<a name="l01343"></a>01343                 }
<a name="l01344"></a>01344                 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l_it_s != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l01345"></a>01345                 {
<a name="l01346"></a>01346                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#ac7799fa85a157eec711779dc88b69184">split</a> = l_it_s;
<a name="l01347"></a>01347                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#aeaae7e7759740c57ebcd935b9af13554">sec</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#aaa703353aed1fb271c1ebeb88738fa87">b_is_vp</a> = <span class="keyword">false</span>;
<a name="l01348"></a>01348                     <span class="keywordflow">return</span>;
<a name="l01349"></a>01349                 }
<a name="l01350"></a>01350             }
<a name="l01351"></a>01351             <span class="keywordflow">else</span>
<a name="l01352"></a>01352             {
<a name="l01353"></a>01353                 <span class="keywordflow">if</span> (l_it_v != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l01354"></a>01354                 {
<a name="l01355"></a>01355                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a51e1a21000866de6e2dd937c90d39f4c">vp</a> = <span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code" href="class_e_t_sheet_view.html" title="Widget capable of displaying an ETSheet content.">ETSheetView</a> *<span class="keyword">&gt;</span>(l_it_v);
<a name="l01356"></a>01356                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#aaa703353aed1fb271c1ebeb88738fa87">b_is_vp</a> = <span class="keyword">true</span>;
<a name="l01357"></a>01357                     b_1 = <span class="keyword">true</span>;
<a name="l01358"></a>01358                 }
<a name="l01359"></a>01359                 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (l_it_s != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l01360"></a>01360                 {
<a name="l01361"></a>01361                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#a15c1ab4d127bc97a1c5fb1445fc2d986">comp</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#ac7799fa85a157eec711779dc88b69184">split</a> = l_it_s;
<a name="l01362"></a>01362                     sd-&gt;<a class="code" href="struct_e_t_sheet_view_1_1_split_data.html#a6b7b9da321b08563590bce091b644c20">first</a>.<a class="code" href="struct_e_t_sheet_view_1_1_split_el.html#aaa703353aed1fb271c1ebeb88738fa87">b_is_vp</a> = <span class="keyword">false</span>;
<a name="l01363"></a>01363                     b_1 = <span class="keyword">true</span>;
<a name="l01364"></a>01364                 }
<a name="l01365"></a>01365             }
<a name="l01366"></a>01366         }
<a name="l01367"></a>01367     }
<a name="l01368"></a>01368 }
<a name="l01369"></a>01369 <span class="comment">/* ========================================================================= */</span>
<a name="l01370"></a>01370 
<a name="l01371"></a>01371 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01372"></a><a class="code" href="class_e_t_sheet_view.html#a1299bac40f077bdb2a070d24527f6b4a">01372</a> <span class="keywordtype">void</span>                <a class="code" href="class_e_t_sheet_view.html#a1299bac40f077bdb2a070d24527f6b4a">ETSheetView::setScene</a> ( QGraphicsScene * scene )
<a name="l01373"></a>01373 {
<a name="l01374"></a>01374 
<a name="l01375"></a>01375     <a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * sht = <span class="keyword">static_cast&lt;</span><a class="code" href="class_e_t_sheet.html" title="Class representing logical root for all elements contained in a document (sheet)">ETSheet</a> * <span class="keyword">&gt;</span>(scene);
<a name="l01376"></a>01376     <span class="keywordflow">if</span> (scene != <a class="code" href="aclass__ddhc_8cc.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)
<a name="l01377"></a>01377     {
<a name="l01378"></a>01378 
<a name="l01379"></a>01379         setBackgroundBrush(QBrush(sht-&gt;<a class="code" href="class_e_t_sheet.html#a616634c26695586b0d9ee45e9c578707" title="the color used for active viewport&#39;s background">background</a>()));
<a name="l01380"></a>01380     }
<a name="l01381"></a>01381     <a class="code" href="class_e_t_sheet_view.html#a1299bac40f077bdb2a070d24527f6b4a">QGraphicsView::setScene</a>(scene);
<a name="l01382"></a>01382     setAlignment(Qt::AlignCenter);
<a name="l01383"></a>01383 
<a name="l01384"></a>01384     <a class="code" href="ddhc__main_8h.html#a86ac382665d71d5977e4620723ae78f5">DDHC_REPARENT</a>(sht);
<a name="l01385"></a>01385 }
<a name="l01386"></a>01386 <span class="comment">/* ========================================================================= */</span>
<a name="l01387"></a>01387 
<a name="l01388"></a>01388 <span class="comment">/*  CLASS    =============================================================== */</span>
<a name="l01389"></a>01389 <span class="comment">//</span>
<a name="l01390"></a>01390 <span class="comment">//</span>
<a name="l01391"></a>01391 <span class="comment">//</span>
<a name="l01392"></a>01392 <span class="comment">//</span>
<a name="l01393"></a>01393 <span class="comment">/* ------------------------------------------------------------------------- */</span>
<a name="l01394"></a>01394 <span class="comment">/* ========================================================================= */</span>
</pre></div></div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="_e_t_sheet_view_8cc.html">ETSheetView.cc</a>      </li>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

    <li class="footer">Generated on Sun Oct 23 2011 22:06:47 for EquTemper by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </li>
   </ul>
 </div>
</body>
</html>
